после файла журнала по http
Вопрос
По соображениям безопасности (я разработчик) у меня нет доступа к командной строке на наших производственных серверах, где записываются файлы журналов. Я могу , однако получить доступ к этим файлам журнала по HTTP. Есть ли утилита в виде "tail -f"? которые могут "следовать" обычный текстовый файл, использующий только HTTP?
Решение
Это можно сделать, если HTTP-сервер принимает запросы на возврат частей ресурса. Например, если HTTP-запрос содержит заголовок:
Диапазон: байты = -500
ответ будет содержать последние 500 байтов ресурса. Вы можете получить это, а затем разбить его на строки и т. Д. Я не знаю ни одного готового клиента, который сделает это за вас - я бы написал скрипт для этой работы.
Вы можете использовать Hurl для экспериментов с заголовками (из общедоступных ресурсов).
Другие советы
Я написал сценарий bash для той же цели. Вы можете найти его здесь https://github.com/maksim07/url-tail
Вы можете использовать небольшую утилиту Java для чтения файла журнала через Http с помощью Apache HTTP Library.
HttpClient client = HttpClientBuilder.create().build();
HttpGet request = new HttpGet(uri);
HttpResponse response = client.execute(request);
BufferedReader rd = new BufferedReader(new InputStreamReader(
response.getEntity().getContent()));
String s = "";
while ((s = rd.readLine()) != null) {
//Process the line
}
Вы можете использовать PsExec для выполнения команды на удаленном компьютере. Команду tail для окон можно найти по адресу http://tailforwin32.sourceforge.net/
Если это должен быть HTTP, вы можете написать легкий веб-сервис для достижения этой цели. например, прочитать текст в указанном файле со строки 0 до строки 200.