Возможно ли / как я могу создать локальную копию живого удаленного файла журнала для просмотра / отслеживания? - PullRequest
1 голос
/ 19 июня 2011

Сценарий: Я могу смотреть логи на удаленной машине Unix, используя ssh и tail, но не могу установить программное обеспечение. Я хочу использовать что-то вроде multitail или другого средства просмотра журнала, которое недоступно на удаленной машине, для просмотра файлов журнала. Конечно, если бы я мог найти способ создавать живые локальные копии журналов по мере их написания, я мог бы использовать любое программное обеспечение, которое мне нужно, на локальной машине.

Вопрос: Можно ли сделать что-то вроде перенаправления вывода клиента ssh в файл для этой цели или есть другой способ достижения этой цели?

Ответы [ 2 ]

2 голосов
/ 19 июня 2011

Используйте параметр -l:

-l command
Команда для выполнения в окне.Параметр - это команда.Не забывайте использовать ", если внешней команде нужны параметры! (Например, -l "ping host").

Например,

$ multitail -l 'ssh host1 tail -f log1' -l 'ssh host2 tail -f log2'

Мультитейл не поддерживает замена процесса bash , однако.

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

Да, вы можете сделать это с помощью netcat.Обратите внимание, что если вы не включите его в цепочку, файл журнала будет отправлен по сети в незашифрованном виде, что может представлять угрозу безопасности для некоторых файлов журнала.

Идея состоит в том, что вы используете netcat,который в основном работает как канал по сети.

1. На машине, содержащей файл журнала, выполните:

tail -f <logfile> | nc -l -p <port-number>

2. На машине, которая хочет дополнительно обработать файл, выполните:

nc <first machine> <port-number> | <your file processor, e.g. multitail>

Или вы также можете записать в файл на целевом компьютере с помощью «>», а затем использовать в этом файле многошаговую обработку.Номер порта выбирается вами, 16-битное число больше 1024.

...