Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  shell  >  正文 一个管理多台服务器的expect脚本

一个管理多台服务器的expect脚本

发布时间:2014-12-03   编辑:www.jquerycn.cn
分享一例expect脚本,用于同时管理多台服务器,解决了一些工具无法自动交互的问题,有需要的朋友参考下。

为大家提供一例expect脚本,expect脚本语言是tcl语言的扩展,可用来解决一些工具无法自动交互的问题。
例如ssh登录时,无法在命令行指定密码等操作。

例子,使用expect管理多台服务器。
 

复制代码 代码示例:
#!/usr/bin/expect
#purpose:auto run command on multiple servers
#how to:  mms <user> <cmd>
#site: www.jquerycn.cn
#
if {$argc < 2} {
puts "usage: mms <user> <cmd>"
exit 1
}
 
#set servers
set SERVERS {"192.168.0.100" "192.168.0.101" "192.168.0.102"}
 
#set password
set PASSWORDS(user1) "passwd1"
set PASSWORDS(user2) "passwd2"
 
#get virables
set USER [lindex $argv 0]
set CMD [lrange $argv 1 end]
 
set passwd $PASSWORDS($USER)
 
foreach x $SERVERS {
eval spawn ssh -l $USER $x $CMD
expect {
"password" { send "$passwd\r" }
"yes/no" { send "yes\r";exp_continue; }
}
expect eof
}

代码说明:
1、定义了三台服务器192.168.0.100 192.168.0.101 192.168.0.102。
定义了用户user1的密码为passwd1,用户user2的密码为passwd2,假如脚本文件名为ms,用法为:
./ms 用户 命令
例如:
#./ms user1 date
2、在使用脚本时,请确认系统已安装expect命令。
没有的话,centos中使用:yum install expect安装;
ubuntu中使用:apt-get install expect安装即可。

您可能感兴趣的文章:
expect批量管理计算机的一个脚本
expect脚本远程批量管理服务器的思路解析
一个管理多台服务器的expect脚本
自动登录到多台服务器的shell脚本
shell结合expect写的批量scp脚本工具
批量修改ssh配置的expect脚本
一个远程登录的简单expect脚本
使用expect进行日志分析
实现ssh自动登录的4种方法
用expect写的一个脚本

[关闭]