无密码传复制到多台服务器

#!/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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值