scp跨机器自动输入密码

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012893325/article/details/54606827

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

猜你喜欢

转载自blog.csdn.net/u012893325/article/details/54606827