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 0
ps:首先定义密码为passwd变量,把发送的命令定义为sc变量,然后用循环读ip地址定义为line变量.
http://www.rootop.org/pages/3420.html
评论: