linux下采用scp远程传送文件,采用expect技术,支持自动输入密码
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
评论暂时关闭