+ -
当前位置:首页 → 问答吧 → 请问下expect 批量管理服务器 关于参数递增循环问题,谢谢。

请问下expect 批量管理服务器 关于参数递增循环问题,谢谢。

时间:2011-05-19

来源:互联网

本帖最后由 zhengsenlin888 于 2011-05-19 18:19 编辑

由于cu没找到expect板块,就发到shell版,请见谅。
我想通过expcet自动登录到各个服务器进行同样操作。然而到底登录哪几个服务器我不固定。我要由参数来判断。

运行命令如下:
#./expect fivetrees 123456 5a00 5a01 5ax12 532x1
# 程序名    用户名       密码      主机1 主机2  主机3  主机4   

脚本如下:
#!/usr/bin/expect
#name expect

if {$argc  <= 2} {
    send_user "usage: ./expect ssh_user password host\n"
    exit
}

#foreach host {argv2 argv3 argv4 argv5} {   参数几个没固定,反正从第二个参数开始到结束,能不能通过这样子的方法,这个我不知道怎么写。shell脚本有个shift可以移动的,不知道expect有什么办法,谢谢。
foreach host {5a00 5a01 5ax12 532x1} {   #我目前实现方法只能通过这里修改主机
set timeout 30
set ssh_user [lindex $argv 0]
set password [lindex $argv 1]
spawn ssh -i .ssh/$ssh_user root@$host.fivetrees.com

expect_before "no)?" {
send "yes\r" }
sleep 1

expect "Enter passphrase for key*"
send "$password\r"

expect "*#"
send "echo hello expect! > /tmp/expect.txt\r"

expect "*#"
send "echo\r"
}
exit

作者: zhengsenlin888   发布时间: 2011-05-19

写在一个文件列表里,维护文件如何?

作者: xiaopan3322   发布时间: 2011-05-19

回复 xiaopan3322


    现在差不多有5台服务器需要弄,所以还是用参数方便,如果服务器超过10台,我觉得用维护文件是比较好,请问下维护文件怎么弄。代码怎么写的,谢谢。

作者: zhengsenlin888   发布时间: 2011-05-19

热门下载

更多