expect批量执行命令

post by rocdk890 / 2015-6-23 15:01 Tuesday linux技术
  今天在网上发现了一个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
#!/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
夜空- 本站版权
1、本站所有主题由该文章作者发表,该文章作者与夜空享有文章相关版权
2、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和夜空的同意
3、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、原文链接:blog.slogra.com/post-601.html

标签: 命令 shell 脚本 批量 执行 expect

  1. 2021-12-02 10:01
    @qw:是啊
  1. gravatar qw
    2021-12-01 11:21
    spawn执行下面有多个expext{}他是顺序执行吗
  1. gravatar linuxhs
    2015-07-09 08:52
    博主 你的博客是用的什么程序 是wordpress还是什么,觉得你的主题不错 能发一份主题给我吗

评论: