2

我希望能够使用 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"

谁能帮我找到解决方案,好吗?谢谢!

4

1 回答 1

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"}

感谢您的评论。

于 2013-08-01T18:15:56.580 回答