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

関連情報