码迷,mamicode.com
首页 > 其他好文 > 详细

expect实现自动scp和ssh登录后执行命令,并向bash提供返回值

时间:2017-06-02 01:16:00      阅读:903      评论:0      收藏:0      [点我收藏+]

标签:expcet


#!/bin/bash

# 全局变量:用户名,普通用户密码,root密码

loginname="icgsu"

userpwd="netentsec"

rootpwd="netentsec"


# 读取iplist

cat /root/iplist | while read line

do

ip=($line)


# scp脚本及ssh登录执行

/usr/bin/expect<<EOF

set timeout 10

spawn scp /root/check_and_fix.sh $loginname@$ip:/home/icgsu

expect {

        "*yes/no" {send "yes\r";exp_continue}

        "*password:" {

                send "$userpwd\r"

        expect eof

                }

        }

spawn ssh $ip -l $loginname -p 22

expect {

        "*yes/no" {send "yes\r";exp_continue}

        "*password:" {

                send "$userpwd\r"

                expect "~]#"

                send "su -\r"

                expect "*assword:"

                send "$rootpwd\r"

expect "~]#"

send "md5sum /home/icgsu/check_and_fix.sh\r"

expect {

"a4e3eb6a16f78129cf78d67d1c737ce9" { send "/home/icgsu/check_and_fix.sh\r"}

}

expect {

"存在漏洞" { exit 0 }

"没有漏洞" { exit 0 } 

}

       expect eof

exit 1

        }

}

EOF


# 记录修复日志

if [ $? -eq 0 ]

then

        echo "$ip 漏洞修复完成" >> /var/log/patch.log

else

        echo "$ip 漏洞修复失败" >> /var/log/patch.log

fi

done


本文出自 “机智少年普朗克” 博客,请务必保留此出处http://armolee.blog.51cto.com/6288560/1931432

expect实现自动scp和ssh登录后执行命令,并向bash提供返回值

标签:expcet

原文地址:http://armolee.blog.51cto.com/6288560/1931432

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!