- 论坛徽章:
- 0
|
记得有一次 IDC 电力割接,托管在那儿的近百台服务器需要做这个关机的操作
想一想
每台登入后输入halt 或者shutdown -h now关掉的话
一台花一分钟,关掉这些机器就得1个小时
这个任务是非常艰巨的,工作量比较大........
没办法,怕直接掉电机器起不来,结果安排了好几位运维的兄弟,那些人负责那几台,那些负责检查.........
当然,如果所有的服务器SSH登陆都信任一个机器,在这个机器直接执行ssh IP地址 shutdown -h now可以了
用的是密码登陆,今天搞expect,于是想到这个shell
适应于:
1.同一网段
2.同样的root密码
3.在这个执行shell的机器之前登陆过所有需要关掉的服务器
#!/usr/bin/expect -f
#by:Leif Updated:2008-10-07 PM E-mail:liangliwen # gmail.com
for {set x 1} {$x<255} {incr x} {
spawn ssh -l root 192.168.10.$x
expect “*password:”
send “123456\r”
expect “*#”
send “hostname\r”
expect “*#”
send “shutdown -h now;exit”
}
expect 的for 用法根bash不一样 |
|