我有这个脚本为了与另一台服务器进行rsync,propossal是获取arround 1600文件,这个脚本作为两个变量,日期和小时,所以,我用shell脚本发送这两个值然后我传递值
期待剧本:
#!/usr/bin/expect
set DIR_DATE [lrange $argv 0 0]
# Define date variable.
set DT_HOUR [lrange $argv 1 1]
# Define hour variable.
spawn rsync -avzb -e ssh user@IPSERVER:/SOURCE_DIR/$DIR_DATE/A$DIR_DATE.$DT_HOUR*.txt /TARGET_DIR/$DIR_DATE/
expect "password:"
send "PASSWORD\r"
#interact
expect eof
shell脚本是:
#!/bin/bash
***HERE is the code to get date and hour variable: DT_DATE,DT_HOUR; then, next step is run the expect script***
${DIR_BIN}/rsync_expect.sh ${DT_DATE} ${DT_HOUR}
你可以注意到,在期望的剧本中,我发表评论" interactive"一句话,因为:
那么,为了使用shell脚本获取所有文件的任何消化?
答案 0 :(得分:1)
你可能已超时:50个文件可能是你可以传输的(默认)10秒。在产生之前添加:set timeout -1
“。sh”是期望脚本的错误文件扩展名:使用“.exp”
lrange
命令返回列表。使用lassign $argv DIR_DATE DT_HOUR