假设我有一台应用程序在一台PC上运行,它通过SSH将命令发送到网络上的另一台PC(两台运行
Linux的机器).
例如,每当#1上发生某些事情时,我想在#2上运行任务.在此设置中,我必须在每个命令上创建SSH连接.
有没有简单的方法使用基本的unix工具来完成这个而无需编写自定义客户端/服务器应用程序?基本上我只想通过SSH建立连接,然后一个接一个地发送一个命令.
解决方法
不确定它是否可以用于生产,但你可以做这样的事情:
在#1上创建文件
1 GT; touch / tmp /命令
然后运行命令:
1 GT; tail -f / tmp / commands | ssh username@x.x.x.x
这将打开文件/ tmp /命令并开始将其内容发送到服务器x.x.x.x(#2)并逐行运行
现在,每次#1上发生的事情都会:
1 GT; echo“ls -l”>>的/ tmp /命令
要么
1 GT; echo“reboot”>>的/ tmp /命令
你添加到文件/ tmp /命令的任何内容都将被发送到#2并执行.只要确保你没有运行任何交互式的东西,或以某种方式处理它.