Файл журнала хвоста на нескольких машинах по ssh

Вы захотите использовать $ вместо $* и заключить его в кавычки:

trickle -u 80 ~/bin/s3cmd.py "$@"

См. также Special Parameters раздел в странице справочника удара.

38
03.03.2018, 01:03
2 ответа

То, что вы видите, является эффектом стандартного буфера Stdout в GREP , предоставленном Glibc. Лучшим решением является отключение его с помощью - с линейной буферизацией (GNU GREP, я не уверен, какие другие реализации могут поддерживать его или что-то подобное).

Что касается Почему Это происходит только в некоторых случаях:

ssh server "tail -f /var/log/server.log | grep test"

запускает всю команду в цитатах на сервере - таким образом GREP ждет, чтобы заполнить свой буфер.

ssh server tail -f /var/log/server.log | grep test

работает GREP на вашем локальном машине на выходе хвоста , отправляемый через канал SSH.

Ключевая часть вот, что GREP регулирует свое поведение в зависимости от того, является ли его stdin клемма или нет. При запуске SSH -T , удаленная команда работает с управляющим терминалом и, таким образом, удаленный GREP ведет себя как ваш местный.

36
27.01.2020, 19:36

проверьте это: multitail

MultiTail позволяет отслеживать логи и вывод команд в нескольких окнах терминала, раскрашивать, фильтровать и объединять.

Для хвоста логов на нескольких серверах используйте:

multitail -l 'ssh user@host1 "tail -f /path/to/log/file"' -l 'ssh user@host2 "tail -f /path/to/log/file"'
2
27.01.2020, 19:36

Теги

Похожие вопросы