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

관련 정보