我想在很多* nix机器上发出kill命令。 我试图做这样的事情:
rsh <remotemachine> ps -ef | grep <somepattern> | awk '{print $2}' | xargs n1 -t -i kill {}
但是,在本地机器上发出kill命令,而不是在远程机器上。 我也尝试过这样的事情:
rsh <remotemachine> kill $(ps -ef | grep <somepattern> | awk '{print $2}')
但是这对我也不起作用。
假设你正在使用它的机器,你也可以使用一个更具体的工具,如pgrep或pkill。 这意味着你不必使用grep,awk或者xargs。 这可以简化一些事情。
http://linux.about.com/library/cmd/blcmdl1_pkill.htm
rsh“remotemachine”pkill whatevertheprocessnameis
ssh user @ someserver“ps -ef | grep | awk'{print $ 2}'| xargs n1 -t -i kill {}”
我拒绝使用SSH以外的任何其他远程控制台方法。 这实际上也是无处不在。
在随机旁边,我build议你使用SSH。 RSH明文发送密码,SSH更安全。
无论哪种方式,你将需要转义本地shell将解释的字符。 也就是那些pipe子。 和单引号。 和美元符号。 我认为花括号是可以的,但我可能会偏执狂,然后做这两件事。 如果不这样做,那么RSH命令只会传递到第一个pipe道,然后该命令的输出将被本地pipe道传输到grep,awk等。
这是令人恼火的那种命令。 尝试这个:
rsh <remotemachine> ps -ef \| grep <somepattern> \| awk \'\{print \$2\}\' \| xargs n1 -t -i kill \{\}
– 克里斯托弗·卡雷尔
这是可以在Windows机器与taskkill,pskill或另一个命令:)值得注意的是,它是不可能在Linux / UNIX机器上使用ssh,rsh或其他远程会话工具。