expect批量执行命令
今天在网上发现了一个expect批量执行命令的脚本,比我之前的批量修改密码的脚本要简单些,现在共享给大家.
系统:centos
需要的软件包:expect(有网的自己yum安装,没网的在光盘里找吧)
1、定义主机ip
cat ip.txt
192.168.0.192
192.168.0.193
192.168.0.194
192.168.0.195
192.168.0.196
2、定义脚本内容
cat script.sh
mkdir test_directory
3、shell嵌套expect脚本
cat shut.sh
ps:首先定义密码为passwd变量,把发送的命令定义为sc变量,然后用循环读ip地址定义为line变量.
http://www.rootop.org/pages/3420.html
系统:centos
需要的软件包:expect(有网的自己yum安装,没网的在光盘里找吧)
1、定义主机ip
cat ip.txt
192.168.0.192
192.168.0.193
192.168.0.194
192.168.0.195
192.168.0.196
2、定义脚本内容
cat script.sh
mkdir test_directory
3、shell嵌套expect脚本
cat shut.sh
#!/bin/bash
#Create By : www.rootop.org
#Version : 1.0
#Data : 2015/05/22
#Last Modify: 2015/05/22-m1
#Desc : auto ops
#Tested : RedHat6/CentOS6 with "expect" package
passwd='123456'
sc=$(cat script.sh)
cat ip.txt | while read line
do
/usr/bin/expect <<EOF
set timeout 30
spawn ssh root@$line
expect {
"yes/no" { send "yes\r";exp_continue }
"password:" { send "$passwd\r" }
}
expect "]# "
send "$sc\r"
send "exit\r"
expect eof
EOF
done
exit 0ps:首先定义密码为passwd变量,把发送的命令定义为sc变量,然后用循环读ip地址定义为line变量.
http://www.rootop.org/pages/3420.html


评论: