我希望能够使用Cron自动执行CopyConsole,这是在服务器的Copy.com上执行文件同步的程序
问题是当没有按下ENTER键时执行没有终止。
我尝试了各种形式的脚本,最好的是这个,但没有成功:
#!/bin/bash
timeout=600
expect() {
local expect="$1" send="$2"
local delim="${expect:(-1):1}"
local buffer="" block=""
while read -u3 -r -t$timeout -d "$delim" block; do
buffer="$buffer$block$delim"
case "$buffer" in
*"$expect")
echo "$send" 1>&3
return
;;
esac
done
}
exec 3<>/usr/local/copy.com/copy_sync.sh
expect "All Files Up To Date" "\r"
有人可以帮我找到解决方案吗?谢谢!
答案 0 :(得分:2)
解决!
必须使用“#!/ usr / bin / expect”并使用“spawn”执行
#!/usr/bin/expect
set timeout 600
spawn /usr/local/copy.com/x86_64/CopyConsole -u=mail@copyaccount -r=/var/backups/copy.com -p=password
expect "All Files Up To Date" { send "\r"}
感谢您的评论。