如何通过 ssh 将命令输出从远程机器重定向到本地文件?

Non*_*del 18 ssh command-line

示例:我通过 ssh 登录我的笔记本电脑(Ubuntu 14.04),我需要制作一些命令输出的 .log 文件,然后将其传输到我的台式机。该命令具有-o将输出重定向到文件的选项。我可以不只是用scp命令复制文件。

问题是:可以将输出直接重定向到我的机器,而无需先在笔记本电脑上制作文件,然后用scp?

两台机器都使用 Ubuntu 14。

Rav*_*ina 26

根据您的命令,您可以执行以下操作:

ssh user@machine command > log
Run Code Online (Sandbox Code Playgroud)

日志将保存在您的机器中,一个真实的例子:

ssh root@192.168.x.x ls > log
Run Code Online (Sandbox Code Playgroud)

如果您的命令不支持输出,stdout则像这样运行它:

ssh root@192.168.x.x "command -o output; cat output"  > log
Run Code Online (Sandbox Code Playgroud)

  • 更好的方法是使用 `tee` 命令,这样你也可以在屏幕上看到输出。例如:`ssh user@machine 命令 | 三通日志` (2认同)

小智 8

如果您想同时查看正在输入和输出的内容 - 试试看:

ssh user@host 2>&1 | tee ssh-session.log
Run Code Online (Sandbox Code Playgroud)