rsync を使用するために、BASH スクリプトを作成しました。WIN 7 の Cygwin シェルからは正常に実行されますが、WIN 7 タスク スケジューラから実行すると失敗します。私のタスク スケジューラ スクリプトは単純です。
c:\cygwin\bin\bash.exe -l -c "~user/rsync_Windows_Backup 2>&1 >> ~user/Documents_cron.log"
初期ディレクトリは C:\Cygwin\bin に設定されています。
私の BASH スクリプトは、[オプション] SRC DEST といくつかの関連するハウスキーピングを備えた典型的な rsync コマンドです。
「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」を実行すると、フォルダーが利用可能になり、書き込み可能になります。
送信者がドライブ マッピング J: を使用して Vista デスクトップ受信者にマップされている WIN 7 デスクトップであることをさらに詳細に追加する必要があります。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 がマッピングとアクセス許可を処理する方法に影響を与えるいくつかのアイデアを試しました。これまでのところ、何も役に立たないようです。
もう 1 つの特徴は、まったく同じ BASH スクリプトとタスク スケジューラ ジョブが Windows Vista Business Edition で成功することです。したがって、WIN 7 には何か欠けているものがあると思います。
私は困惑しており、いくつかのガイダンスを使用できます。
ありがとう。