linux 下,登陆远程主机执行命令,我们一般会用:
ssh $hostname "ls -l /tmp"
这里我习惯加双引号,把要执行的命令引起来。
但是,如果我们要在远程主机上执行一个脚本,而这个脚本在本地,一般会这样:
1、先拷贝脚本到远端主机,比如我的测试脚本是获取远端的主机名,使用scp 或者rsync什么的,先拷贝过去
2、执行:ssh $hostname "sh $脚本"
这种方法多了拷贝的过程,麻烦了点,当然,linux 是喜欢简单,一切从简,因此还有如下方法:
ssh $hostname bash < /tmp/getHostname.sh
这样一步搞定,不需要拷贝脚本到远端主机上,方便吧。
但这里有个问题,/tmp/getHostname.sh 这个脚本里面如果需要传入参数的话,这种方式,我测试了下,似乎传不进去,谁如果有方法的话,欢迎交流。
转载于:https://blog.51cto.com/myaliqiang/1074784