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
가능하다면 원인을 찾아보는 것이 좋습니다.