原地址:http://blog.wsdd.org/?p=1992
linux的shell下,经常要用管道和重定向,不过你知道吗?有办法可以让管道和重定向跨越主机。
就是hosta上的某个命令的输出管道到hostb上的某个命令,或者hosta上的某个输出重定向到hostb的某个文件里。
很简单,依赖于ssh,这里举个例子,你就明白了:
date | ssh host "cat >> abc.txt"
把当前主机上date的执行结果append到host机器的abc.txt文件后。
ssh host "free" >> abc.txt
把host机器上free的执行结果append到本地 abc.txt 的末尾。
看到这里,你应该掌握要点了,ssh host “command” 是 ssh到host,并执行命令,命令的输出是在本地的。
也可以管道到ssh命令,则是作为ssh host后的命令的stdin的,可以cat出来(cat默认是从stdin读的),再管道到其它命令。
另:如果想vim编辑其它机器上的一个命令,有方便的方法:
vim scp://host//tmp/abc.txt
是编辑host上/tmp/abc.txt文件。