从 ssh 尾部查看文件并镜像到本地文件

从 ssh 尾部查看文件并镜像到本地文件

要通过 ssh tail 文件,我可以使用

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

但是,可以将 tail 与本地文件同步吗?这样文件就能自动镜像 tail 命令的更新?

答案1

是的,你可以使用 tee 来实现这一点:

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

这样,输出将打印在 stdout 上,并复制到运行 ssh 命令的系统上的 /var/log/local.log 中。

答案2

只需重定向标准输出。

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"

答案3

只是建议另一个有用的方法是使用 logtail。将logtail包安装到远程主机,然后运行此命令以仅获取上次未读取的新行:

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

您可以在需要“同步”日志时运行上述命令,也可以将其添加到 crontab,这样它就可以自动运行。当您没有稳定的连接时,这种方式尤其有用,因此您无法日复一日地保持 ssh 连接。

希望这有帮助。

相关内容