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

使用expect无交互的批量分发文件脚本

时间:2016-12-09 10:52:36      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:expect分发

fenfa_sshkey.exp

#!/usr/bin/expect
if { $argc != 2 } {
 send_user "usage: expect fenfa_sshkey.exp file host\n"
 exit
}
set file [lindex $argv 0]
set host [lindex $argv 1]
set password "123456"
spawn ssh-copy-id -i $file "-p 22 bier888@$host"
expect {
        "yes/no"    {send "yes\r";exp_continue}
        "*password" {send "$password\r"}
}
expect eof
exit -onexit {
  send_user "Oldboy say good bye to you!\n"
}


用法:

[bier888@WebServer ~]$ expect fenfa_sshkey.exp ~/.ssh/id_dsa.pub 192.168.1.139  

直接发送到对方机器的家目录下面


把执行的命令放到一个脚本里面循环批量执行

fenfa_sshkey.sh

#!/usr/bin/expect
. /etc/init.d/functions
for ip in `cat iplist`
do
expect fenfa_sshkey.exp ~/.ssh/id_dsa.pub $ip 
if [ $? -eq 0 ]
          then
                action "scp $file to remotedir is OK" /bin/true
          else
                action "scp $file to remotedir is FAIL" /bin/false
        fi
done


执行

sh fenfa_sshkey.sh

这样子就不需要yes和no的提示了和不需要密码


本文出自 “比尔linux运维笔记” 博客,请务必保留此出处http://chenshoubiao.blog.51cto.com/6159058/1880964

使用expect无交互的批量分发文件脚本

标签:expect分发

原文地址:http://chenshoubiao.blog.51cto.com/6159058/1880964

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