我有一个工具处理的几个TB的数据。 工具的输出应该同时发送给另外两台机器(同时,因为在工具运行时出现停机,我想限制停机时间)。
如果我只是从一台机器pipe道,那么很容易:
tool terabyte.txt | ssh [email protected] /sbin/process-input
但我怎样才能同时发送数据到多台机器?
如果情况涉及其他软件或脚本,我不介意。 它不一定是一个“纯SSH”解决scheme。
你可以试试ClutterSSH :
通过ClusterSSH,可以与多台服务器或机器进行SSH连接,从一个命令窗口执行任务,无需任何脚本。 'cssh'命令允许您连接到作为命令行参数指定的任何服务器,或者连接到configuration文件中定义的服务器(或集群节点)组。
你可以尝试使用三通
tool terabyte.txt | tee >(ssh [email protected] /sbin/process-input) | ssh [email protected] /sbin/process-input
也许,更多的pee可能会更好:
小便是像发球,但pipe道。 每个命令运行并提供一个标准input的副本。 所有命令的输出都发送到stdout。
所以,你可以运行
tool terabyte.txt |pee 'ssh [email protected] /sbin/process-input' 'ssh [email protected] /sbin/process-input'