scp传送多个文件的shell命令
之前开发中,遇到需要一次scp多个文件到指定服务器上的指定目录。
命令如下:
# 传送日志
log="/logs/`date +'%Y-%m-%d'`.log"
# 要传送的文件所在目录
logDir="/sourcePath/"
# 要传送到的目标机器目录
dst="user@10.100.10.100:/files/"
# scp 传输
expect -c "
set timeout 7200;
spawn /usr/local/bin/scp -P 36000 `ls $logDir | xargs -i echo "$logDir/{}" | tr "\n" " "` $dst
expect {
\"*yes/no*\" {send \"yes\r\"; exp_continue}
\"*password*\" {send \"目标机器的密码\r\";}
}
expect eof;"
# 将scp的文件记录到日志
echo -e `date`"\n"`ls $logDir` >> $log
# 删除logDir目录下的所有文件
`rm -f $logDir/*`