linux下采用scp远程传送文件,采用expect技术,支持自动输入密码


linux下采用scp远程传送文件,采用expect技术,支持自动输入密码
 
1. 编辑 copycgi.sh,主要用户筛选需要传送的文件,内容如下:
 
#!/bin/bash
path="./"
if [ $# -eq 1 ]; then
   path=$1
   if [ ! -d $path ]; then
       echo "please input valid dir."
       exit  
   fi
fi
 
ls -al ${path}/*.cgi|while read line
do
filename=`echo $line | awk '{print $8}'`
#!echo "start send "$filename
./expect_scp_one.sh $filename
echo "send ${filename} finish"
done
 
2.  编辑 expect_scp_one.sh文件,主要用于传送指定的一个文件到指定机器,内容如下
 
#!/usr/bin/expect -f 
set passwd logview
set src_path  [lindex $argv 0]
set dst_path "logview@172.25.38.13:/usr/local/www.AAA.com/app/mpay/"
 
spawn scp -Q -p $src_path $dst_path 
set timeout 30 
#expect –re ".*assword:\r" 
send "$passwd\r" 
set timeout 30 
send "exit\r"
expect eof
 
3.  赋予可执行属性
 
chmod +x expect_scp_one.sh
 
chmod +x copycgi.sh
 
4. 测试
 
./copycgi.sh ./
spawn scp -Q -p ./mp_credit_userinfo.cgi logview@172.25.38.13:/usr/local/www.AAA.com/app/mpay/
logview
exit
logview@172.25.38.13's password:
Received signal 1. (no core)
send ./mp_credit_userinfo.cgi finish

相关内容

    暂无相关文章