作者:t53457078 | 来源:互联网 | 2014-05-23 14:01
不用公钥批量部署机器执行命令模版案例:www.2cto.com脚本目的:两台以上机器(ip:172.16.1.187和172.16.1.188)去拷贝主控制机器IP:172.16.1.199上目录/liang/下的ceshi.sh脚本(如果这儿有更多的目的要求...
不用公钥批量部署机器执行命令模版
案例: www.2cto.com
脚本目的:两台以上机器(ip:172.16.1.187和172.16.1.188)去拷贝主控制机器IP:172.16.1.199上目录/liang/下的ceshi.sh脚本 (如果这儿有更多的目的要求可以按照以下方法扩展即可!)
以下脚本只需放在主控制端机器IP:172.16.1.199去运行即可实现目的!
法一:(连续ip)
vim bushu.sh
#!/usr/bin/expect -f
for {set i 187} {$i<=208} {incr i} {
spawn ssh -l root 172.16.1.$i
expect "*password: "
sleep 1
send "123456\r"
###可以继续提取关键词!
expect "root"
send "scp root@172.16.1.199:/liang/ceshi.sh /liang/\r" #这儿是要批量去执行的命令操作!更多操作可类似并写!
###注意如果第一次连过去可能会让提示yes/no!如果是第一次还得加以下两行如下:
#expect "yes"
#send "yes\r"
expect "pasword:"
send "123456\r"
expect eof
}
法二:(不连续ip)
以上可以这样写:
#!/usr/bin/expect -f
foreach ip {
172.16.1.187
172.16.1.188
} {
spawn ssh -l root $ip
expect "*password: "
sleep 1
send "123456\r"
###可以继续提取关键词!
expect "root"
send "scp root@172.16.1.199:/liang/ceshi.sh /liang/\r" #这儿是要批量去执行的命令操作!更多操作可类似并写!
###注意如果第一次连过去可能会让提示yes/no
expect "pasword:"
send "123456\r"
expect eof
}