我在 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
,因此如果可以的话,我宁愿找到原因。