
QNAP NASはこれを使用していますが、rsync --log-file=...
cronを介して実行するとログファイルに追加されません。コマンドラインから同じコマンドを実行すると追加されます。
このコマンドはコマンドラインから追加されます。
rsync -rvs -e ssh --log-file=/share/homes/admin/rsync.log --ignore-existing "/source/" "/destination/"
スケジュールされた作業項目:
30 * * * * /share/homes/admin/bin/myscript.sh
スクリプトmyscript.sh
:
#!/bin/sh
LOCKFILE=/var/log/$(basename "$0").lock
LOGFILE=/share/homes/admin/rsync.log
if [ -e /var/log/$LOCKFILE ]
then
echo "Rsync job already running...exiting" >> "$LOGFILE"
exit
else
touch "$LOCKFILE"
fi
trap 'rm "$LOCKFILE"' EXIT
rsync -rvs -e ssh --log-file="$LOGFILE" --ignore-existing "/source/" "/destination/"
if [ "$?" -gt "0" ]
then
/share/homes/admin/bin/email.sh
fi
rsync
スクリプトでコマンドを実行するだけでは、rsync
ログファイルに追加されません。
時々、まれにするしばらく追加してから停止して上書きします。これも非常に奇妙です。
コマンドの出力をリダイレクトできますが、rsync
そうすると追加されたタイムスタンプがすべて失われるため、rsync
可能であれば原因を調べることをお勧めします。