我想使用 ssh 在几台机器上运行一些命令。我知道这可以通过使用命令“ssh user@hostname command”来完成。但是,我要运行的命令在控制台上打印一些字符串。有什么方法可以将所有字符串发送回我所在的控制台吗?
问问题
12011 次
5 回答
6
您可以在屏幕中运行命令:
screen -S test
ssh user@hostname command1
ssh user@hostname2 command2
然后,您可以从屏幕上分离 (Ctrl-D),让它运行多长时间,然后重新附加 (screen -r test) 到屏幕并查看所有输出。但是,这假设您不会从命令中获得大量输出。 这是屏幕上教程的链接。
于 2009-06-23T23:29:13.697 回答
6
ssh user@hostname command
就是这样做的。如果 'command' 输出一些东西,它会显示在你运行 ssh 的终端上。尝试例如 ssh user@hostname ls -l
但正如其他人所说,GNU screen 对于这类工作来说是无价的。
于 2009-06-23T23:36:08.630 回答
1
您可能想为此使用Gnu Screen。您可以在“虚拟”终端中启动一个进程,“分离”终端并注销您想要的多长时间......然后您可以重新登录并重新连接终端以查看控制台输出。
于 2009-06-23T23:30:28.563 回答
1
也看看nohup
,例如:
ssh user@domain.com nohup script_that_outputs_strings.py > the_strings.txt
然后,如果您想返回并监控进度,您可以tail
将文件或scp
输出返回到本地计算机。
于 2009-06-24T00:14:03.387 回答
0
为什么不给你回邮件?还是使用日志文件,并将其 scp 到您当前的计算机?否则,我不知道!
于 2009-06-23T23:24:32.460 回答