scp跨机器自动输入密码


1.//sh脚本文件  batch_scp.sh  目录在/home/wb/wb/scp/
xx@xxxx:~/wb/scp$ cat batch_scp.sh
#!/bin/sh

#####add by wb 2017/01/18########
#执行脚本例子
#wscp     ./scp_file.txt       xx@xxxx:/home/wb/wb/scp
############
list_file=$1
desc_path=$2
#src_path=$2
src_path=~+
############

cat $list_file | while read line
do
##########获取文件目录
    file_path=`echo $line | awk '{print $2}'`
    #echo "$file_path"
    file_name=`echo $line | awk  -F  /  '{print $NF}'`
    #echo "$file_name"
    file_dir=`echo $file_path | awk -F "$file_name" '{print $1}'`
    #echo "$file_dir"
    #echo "$desc_path"
    #echo "$PWD"
    #echo ~+
##############调用scp的exp脚本
expect /home/wb/wb/scp/expect_scp.exp $src_path/$file_path $desc_path/$file_dir
done


2.//expect脚本  expect_scp.exp   目录在/home/wb/wb/scp/
xx@xxxx:~/wb/scp$ cat expect_scp.exp
#!/usr/bin/expect

####add by wb 2017/01/18#######等待时间
set timeout 1

##############################
##########传过来的参数
set src_path [lindex $argv 0]
set desc_path [lindex $argv 1]
#############################

########目标服务器的密码
#set password ***********
set password  **********

spawn  scp $src_path  $desc_path
expect {
            "*(yes/no)" {send "yes\n";exp_continue}
            "*assword:" {send "$password\n"}
}

#send_user "send eof............3\n"
expect eof


3.vi ~/.bashrc中添加如下代码
alias wscp="sh /home/wb/wb/scp/batch_scp.sh"

方法:到svn目录下
  1. svn st > scp_file.txt
  2. wscp   ./scp_file.txt  xx@xxxx:/home/wb/wb/scp
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值