为了使用 rsync,我创建了一个 BASH 脚本。它从 WIN 7 中的 Cygwin shell 运行良好,但从 WIN 7 任务计划程序运行时失败。我的任务计划程序脚本很简单:
c:\cygwin\bin\bash.exe -l -c "~user/rsync_Windows_Backup 2>&1 >> ~user/Documents_cron.log"
初始目录设置为 C:\Cygwin\bin。
我的 BASH 脚本是一个典型的 rsync 命令,带有 [options] SRC DEST 和一些相关的内务管理。
“rsync_Windows_Backup”BASH 脚本中的 rsync 命令是:
/bin/time -f "\nElapse (hh:mm:ss.ss) %E" \
rsync.exe -v -rltz --chmod=a=rw,Da+x -u "$SRC" "$DEST" >> "$LOG" \
2 >> "$LOG"
$ ./rsync_Windows_Backup - succeeds.
但是任务计划程序作业失败,因为它找不到 BASH 脚本引用的 DEST 文件夹。当我从 BASH 命令行执行“cd DEST”时,文件夹可用并且可以写入。
我应该添加更多细节,发送者是一个 WIN 7 桌面,它映射到一个带有驱动器映射 J: 的 Vista 桌面接收器。BASH 脚本确实启动但失败了:
rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Broken pipe (32)
rsync: mkdir "/cygdrive/J/DocumentsBackup" failed: No such file or directory (2) rsync error: error in file IO (code 11)
假设这是问题的根源,我尝试了几种想法来影响 WIN 7 如何处理映射和权限。到目前为止,似乎没有任何帮助。
另一个特点是完全相同的 BASH 脚本和 Task Scheduler Job 确实成功了 WIN Vista 商业版。所以我假设在 WIN 7 中我缺少一些东西。
我很难过,可以使用一些指导。
谢谢。