Назад | Перейти на главную страницу

Отслеживайте несколько удаленных файлов

Есть ли способ удалить 2 файла с хвоста?

У меня есть два сервера (a и b) за балансировщиком нагрузки, и я хотел бы сделать что-то вроде этого, если возможно:

tail -f admin@serverA:~/mylogs/log admin@serverB:~/mylogs/log

Спасибо!

Я предпочитаю использовать мультитейл. Я бы запустил что-то вроде:

multitail -l 'ssh user@host1 "tail -f /some/log/file"' -l 'ssh user@host2 "tail -f /some/log/file"'

Это сработало для меня:

ssh -n user@hostname1 'tail -f /mylogs/log' &
ssh -n user@hostname2 'tail -f /mylogs/log' &

Ты можешь использовать ткань для отслеживания нескольких хостов (а также результатов grep, если необходимо):

$ fab -P -u 'USER' -p 'PASSWORD' --linewise -H host1,host2,host3 -- tail -f /path/to/my/log.log | grep ERROR

Я подумал, что можно также использовать:

ssh -f user@hostname1 "tail -f /var/log/file" > /tmp/somefile &
ssh -f user@hostname2 "tail -f /var/log/file" > /tmp/somefile &

Параметр -f после ssh позволяет ввести пароль перед его запуском в фоновом режиме. Затем вы можете получить построчные результаты в одном файле и запустить:

tail -f /tmp/somefile

Дает вам немного больше контроля над текущей командой "хвоста", если вы хотите использовать другие параметры хвоста для отображения вывода.

Проверять, выписываться этот ответ на stackoverflow - он использует dsh и tail -f.

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

Параллельный ssh есть хорошее решение для этого:

pssh -t0 -H 'host-01 host-02 host-03 host-04' -P tail -f /var/log/app.log
  • -t0 отключает тайм-аут соединения, иначе pssh закрыл соединение
  • -H '<host>...' это список хостов для запуска команды
  • -P - включить печать стандартного вывода каждого хоста
  • tail -f /var/log/app.log может быть любой командой, которую может запустить ваша удаленная оболочка

Что бы вы сказали о таком? http://gist.github.com/303175

Странное решение, но оно работает !:

Экран 1

ssh user@hostname1 "tail -f /var/log/file" > /dev/pts/6

Экран 2

ssh user@hostname2 "tail -f /var/log/file" > /dev/pts/6

Вы можете оформить заказ на dbitail.

Я создал инструмент Java, способный читать локальные и удаленные файлы журналов с помощью SSH. Пользоваться им довольно просто.

Еще несколько пояснений: https://github.com/pschweitz/DBITail/wiki

Просто загрузите версию, соответствующую вашей операционной системе, исполняемого файла собственного выпуска jar в среде выполнения Java (требуется java 8_40 или выше):

https://github.com/pschweitz/DBITail/releases

Вы можете найти полную документацию (встроенную со страницей Github и I)

Филипп

или вы можете использовать экран, чтобы создать два терминала, а затем разделить их.

SSH к первому хосту, для которого вы хотите отслеживать файл журнала, и перед запуском tail введите screen.

Затем сохраните файл на этом хосте.

CTRL + A, c создаст новый экран или окно. Из этого нового окна ssh на второй хост и оставьте файл там.

Теперь создадим разделенный экран

CTRL + A, SHIFT + S, это создаст разделенный экран с текущей оболочкой в ​​верхней части и пустой нижней частью. Чтобы переключиться на нижнюю часть и поместить в нее первый экран,

CTRL + A, TAB, это переместит вас в нижнюю часть. Теперь, чтобы провести вашу первую сессию SSH в этой области:

CTRL + A, "(символ кавычки), выберите первую сессию и нажмите Enter.

Я понимаю, что это может выглядеть как обычная гимнастика, и это так, но вы действительно привыкните к нему, если воспользуетесь им несколько раз.

Вот действительно хорошее руководство или краткий справочник по командам экрана: http://www.pixelbeat.org/lkdb/screen.html

Кроме того, вы можете создать файл .screenrc, чтобы многое из того, что я описал, можно было автоматизировать при первом входе в screen.

Еще один приятный момент в том, что вы можете просто закрыть сеанс и возобновить его в другом месте. Например, вы на работе и ведете мониторинг. Вы можете просто закрыть сеанс, не выходя из системы, и возобновить его, когда вернетесь домой или в другое место.

Вы можете управлять файлами удаленно с помощью bash и rsync, я использую его, и это отличный сценарий bash. Взгляните на следующий учебник

Управляйте файлами удаленно с помощью bash и rsync