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

Сохраните файл из ssh и отразите его в локальный файл

Чтобы сохранить файл по ssh, я могу использовать

ssh  -t remotebox "tail -f /var/log/remote.log"

Однако можно ли синхронизировать хвост с локальным файлом? Значит, файл автоматически отражает обновление хвостовой команды?

Да, для этого можно использовать тройник:

ssh  -t remotebox "tail -f /var/log/remote.log" | tee -a /var/log/local.log

Таким образом, вывод будет напечатан как на стандартный вывод, так и скопирован в /var/log/local.log в системе, из которой вы запускаете команду ssh.

Просто перенаправьте stdout.

ssh -t remotebox tail -f /var/log/remote.log > local.log

Чтобы добавить в local.log:

ssh -t remotebox tail -f /var/log/remote.log >> local.log

Это запишет на локальный сервер.

Удаленный сервер будет записан только в том случае, если вы включите перенаправление в кавычки:

ssh -t removebox "tail -f /var/log/remote.log >> remote.log"

Просто предложите еще один полезный способ - использовать логтейл. Установить logtail пакет на удаленный хост, затем запустите это, чтобы получить только новые строки, которые не были прочитаны в прошлый раз:

ssh remotebox logtail -f /var/log/remote.log >> local.log

Вы можете запускать указанную выше команду всякий раз, когда хотите «синхронизировать» журнал, или можете добавить ее в crontab, чтобы она могла запускаться автоматически. Этот способ особенно полезен, когда у вас нет стабильного соединения, поэтому вы не можете поддерживать соединение ssh изо дня в день.

Надеюсь на эту помощь.