您的位置:首页 > 其它

远程执行命令

2014-12-22 16:25 127 查看
远程执行命令

这个分两步,很简单很实用。

第一步,设置ssh免认证,免认证就是只不用密码认证就可以直接登录,这在写脚本服务器控制时特别有用。

ssh-keygen -t rsa
cd ~/.ssh
ssh-copy-id xuexi01
注:xuexi01是主机名,也可写成IP,如192.168.2.11

第二步,就是到远端服务器上去执行命令

假如现在有两个服务器,一个叫AA,另一个叫BB。现在我要在AA上去控制BB。

格式:ssh BB的用户名@BB的IP "命令",其中IP也可以使用域名,

格式:ssh BB的用户名@xuexi01 "命令"
ssh tuxedo@192.168.2.11  "echo aaa>>hzs_test.txt"
ssh tuxedo@192.168.2.11  'echo  -e "haha\n hoho" >>hzs_test.txt'


--使用域名

ssh tuxedo@xuexi01  "echo aaa>>hzs_test.txt"
ssh tuxedo@xuexi01  "/home/userA/script/test.sh"
远程脚本中使用了一些命令,而这些命令被Shell解析器的识别依赖于PATH环境变量时,该脚本需要在其第一行中包含执行profile文件的命令。比如,在脚本的第一行加上:

#!/bin/sh

上面两步已经可以满足要求了,第三步是通过脚本简本一些操作

第三步 可简化操作

remotecommand.sh 内容如下:
#!/bin/sh

HOST_LIST="xuexi01 xuexi02 xuexi03"
SSH_PORT=22

for loop in $HOST_LIST
do
echo "------ start executing in $loop: ----------------------------"
ssh -p $SSH_PORT $loop "$1"
echo "------ end   executing in $loop:------------------------------"
echo
done

注:xuexi01,xuexi02,xuexi03 是三台linux 的域名,相当于每条命令都会在这三台机子上执行

增加可执行权限:

sudo chmod +x remotecommand.sh


执行脚本:

./remotecommand.sh "cd ~; cd tmp; mkdir tt3"


这条命令相当于分别在xuexi01,xuexi02,xuexi03 三台机子上执行 "cd ~; cd tmp; mkdir tt3"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: