Хвост текстового файла на веб-сервере через HTTP - PullRequest
6 голосов
/ 31 мая 2011

Ищите информацию о том, как решить следующую проблему.В моем приложении ColdFusion 9 есть простой регистратор, который записывает текст в файл.На моем компьютере разработчика файл является локальным, поэтому я могу использовать 'tail -f' или TailView CFB для его просмотра.Мне бы хотелось, чтобы инструмент смотрел его, когда он развернут на рабочем сервере.Уловка: production находится у общего хостинг-провайдера CF, который не разрешает доступ к файлам RDS или шлюз наблюдателя каталога.Я задаюсь вопросом о странице с мета-тегом обновления или, если я хочу получить больше фантазии, что-то вроде AJAXy с тем же эффектом.Мысли?Какие-нибудь инструменты, которые уже существуют для этого?

Я могу поэкспериментировать с этим, но надеюсь, что есть что-то более "законченное": после файла журнала через http

Ответы [ 4 ]

1 голос
/ 06 ноября 2011

Вы можете использовать следующий скрипт PHP:

<?php
header("Content-Type: text/plain");
set_time_limit(0);
passthru("tail -F -n +0 log.txt");
?>
0 голосов
/ 19 апреля 2013

Я создаю следующий сценарий bash для моего варианта использования ( tail.sh )

Он с помощью 'lynx' получает список файлов, из которых получают необходимый размер файла, и в бесконечностицикл пытается получить часть файла

0 голосов
/ 01 июня 2011

Я знаю, что это довольно старая школа, но вы рассматривали возможность входа в базу данных?Если вы отметите время записи в журнале в таблице, вы можете использовать заголовки кэширования HTTP, чтобы сообщить серверу, какие новые данные вы должны увидеть.

0 голосов
/ 31 мая 2011

Следующий псевдо-код основан на этом Java-решении и не тестировался вовсе:

if (NOT structKeyExists(application, "log") {
    application.log = fileOpen('log.txt', 'read')
}

while(NOT FileisEOF(application.log))  {
    writeOutput(fileReadLine(application.log) & "<br/>");
}

Поместите это на страницу с мета-обновлением, и я думаю, что вы, вероятно, в бизнесе.

...