通过 SSH 执行命令并记录实时输出

通过 SSH 执行命令并记录实时输出

我正在尝试记录远程 ssh 命令的输出。

我目前正在使用

ssh USER@IP | tee -a ~/random.log

然后运行我需要在远程服务器上运行的命令,然后将其记录到random.log。

我需要它能够在后台运行,目前当我退出/关闭终端时它就会退出。

我无法登录远程服务器,因为它是一个可用空间很少(>800kb)的路由器。

答案1

您也可以在本地机器上使用屏幕,以防止在关闭终端窗口时停止退出。

screen

在屏幕会话中,

ssh USER@IP | tee -a ~/random.log

如果您不小心关闭了窗口,只需使用screen -r重新连接即可。请注意,这不会在本地计算机重新启动后继续存在。

答案2

在两个 Linux 机器之间进行了快速测试,似乎运行正常:

ssh USER@IP "command_to_show_router_log" | tee -a (local_copy_filename)

我在“command_to_show_router_log”中使用了“tail -f (logfile)”,但由于您提到这是一个路由器,所以您的语法可能会有所不同。

相关内容