linux expect

a.sh批量传文件

#!/bin/bash

for i in `cat /shell/aa.txt`
do
m=`echo $i|awk -F: '{print $1}'`
n=`echo $i|awk -F: '{print $2}'`
expect -c "
    spawn scp  /data/sqldeveloper-3.2.20.09.87-1.noarch.rpm root@$m:/data/
    expect {
        "*password:*" { send $n\r\n; interact }
        eof { exit }
    }
    exit
    "
done
 
b.sh批量执行操作
#!/bin/bash
for i in `cat /shell/aa.txt`
do
m=`echo $i|awk -F: '{print $1}'`
n=`echo $i|awk -F: '{print $2}'`
expect -c "
    spawn ssh root@$m /bin/rpm -ivh /data/sqldeveloper-3.2.20.09.87-1.noarch.rpm
    expect {
        "*sure*" { send yes\r\n; interact }
        "*password:*" { send $n\r\n; interact }
        eof { exit }
    }
    exit
    "
done
 
a.txt文件内容
192.168.0.182:passwd
192.168.0.183:passwd
192.168.0.184:passwd
192.168.0.185:passwd
192.168.0.186:passwd
192.168.0.187:passwd
192.168.0.188:passwd

本文出自 “IT运维记事” 博客,谢绝转载!

你可能感兴趣的:(linux,expect)