版权声明:本文为博主原创文章,未经博主允许不得转载。 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目录下
- svn st > scp_file.txt
- wscp ./scp_file.txt xx@xxxx:/home/wb/wb/scp