Вопрос

По соображениям безопасности (я разработчик) у меня нет доступа к командной строке на наших производственных серверах, где записываются файлы журналов. Я могу , однако получить доступ к этим файлам журнала по 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top