ssh的远程登陆和拷贝功能大家应该都比较熟悉,但是执行远程命令,以前更习惯于先登陆到远程机器,然后在上面运行脚本。
如果能够在本地,直接执行远程机器上的脚本,将会极大便利批量服务器的配置管理,下面会给出一个简单例子:
#!/bin/bash
KEY='/root/.ssh/private_key' //ssh 登陆用的private key
PORT=22
SSH_OPT="-q -i $KEY"
REMOTE_SCRIPT='run.sh'
REMOTE_IP='101.227.34.290'
scp $SSH_OPT REMOTE_SCRITP root@REMOTE_IP:/root/ #拷贝脚本到远程server
ssh $SSH_OPT root@REMOTE_IP "/root/run.sh" #在本地执行远程脚本
关键点是事先分配好ssh public 和private key,在本地用private key自动登陆,不需要交互。这样在脚本中就可以循环处理多台远程机器。