使用expect无交互的批量分发文件脚本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用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 [email protected]$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" }
用法:
[[email protected] ~]$ 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脚本同步文件expect脚本指定host和要同步的文件构建文件分发系统批量远程执行
expect脚本同步文件 expect脚本指定host和要同步的文件 构建文件分发系统 批量远程执行