当前位置: > shell编程 >

expect批量管理计算机的脚本

时间:2014-11-02 02:30来源:linux.it.net.cn 作者:it

首先,考虑用PHP-CLI,它有一个开发中的模块ssh2,可以完成相应的功能,用了半天都不行,Bug还太多。

expect是交互式shell编程的利器,可以根据返回值来确定下面发送什么命令,特别好用。
远程增加用户的shell脚本,需要机器装有expect。

代码分享:
 

复制代码代码示例:
#!/usr/bin/expect
#脚本第一个参数是远程服务器IP
set IP     [lindex $argv 0]
#远程服务器用户名(通常用root)
set USER [lindex $argv 1]
#远程服务器用户名的密码
set PASSWD [lindex $argv 2]
#添加的新用户
set Nuser [lindex $argv 3]
#新用户的密码
set Npasswd [lindex $argv 4]
#用spawn启动一个ssh客户端
spawn ssh -l $USER $IP
#如果是第一次连接,要保存密钥再输入密码,如果不是第一次连接则输入密码
expect {
 "yes/no" { send "yes\r"; exp_continue }
 "password:" { send "$PASSWD\r" }
}
#如果不是root,要expect "$",下面不讲了,很简单
expect "*#"
send "useradd -s /bin/sh -d /home/$Nuser $Nuser\r"
expect "*#"
send "passwd $Nuser\r"
expect "*password:"
send "$Npasswd\r"
expect "*password:"
send "$Npasswd\r"
expect "*#"
send "exit\r"
 
(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容