#!/usr/bin/expect
#需要安装expect:sudo yum install expect
#传输到多台服务器的脚本
set timeout 20
if { [llength $argv] < 2} {
puts "Usage:"
puts "$argv0 local_file remote_path"
exit 1
}
#下面几行后面的注释要去掉, 否则会报错!
set local_file [lindex $argv 0] #本地文件
set remote_path [lindex $argv 1] #远程文件user@ip:/..
set passwd [lindex $argv 2] #远程用户登陆密码
set passwderror 0
#执行复制
spawn scp $local_file $remote_path
#提供密码交互
expect {
"*assword:*" {
if { $passwderror == 1 } {
puts "passwd is error"
exit 2
}
set timeout 1000
set passwderror 1
send "$passwd\r"
exp_continue
}
"*es/no)?*" {
send "yes\r"
exp_continue
}
timeout {
puts "connect is timeout"
exit 3
}
}
~
执行的格式 ./scp.exp 本地文件 user@ip:远程目录 密码
./scp.exp run.sh root@10.222.2.2:/home/care/asgroup 123456
无密码传复制到多台服务器
最新推荐文章于 2023-04-22 12:25:19 发布