防止 cron 上的 rsync 电子邮件为空

防止 cron 上的 rsync 电子邮件为空

我有一个 crontab 作业来同步文件夹:

50 5 * * * /home/user/bin/sync-folder

这将执行一个脚本:

#!/bin/bash

sudo rsync -rav --delete --log-file=/tmp/rsync-output /origin /destination
grep folder /tmp/rsync-output

if [ $? == 0 ]; then
    cat /tmp/rsync-output
fi

问题是,当没有任何内容可同步时,我会收到如下电子邮件:

sending incremental file list

sent 343 bytes  received 17 bytes  720.00 bytes/sec
total size is 91,056  speedup is 252.93

我想要的是仅在有新更改时收到电子邮件。如何防止此类电子邮件?

答案1

替换这个:

50 5 * * * /home/user/bin/sync-folder

有了这个:

50 5 * * * /home/user/bin/sync-folder > /dev/null 2>&1

在脚本中添加电子邮件:

#!/bin/bash

sudo rsync -rav --delete --log-file=/tmp/rsync-output /origin /destination
grep folder /tmp/rsync-output

if [ $? == 0 ]; then
    mailx -s "Rsync Complete at `date +"%F %T"`" [email protected] < /tmp/rsync-output
fi

相关内容