crontab의 예약된 작업은 실행 후 해당 crontab 소유자에게 mail을 발송한다.
단, sendmail과 같은 메일 발송 데몬이 실행중이어야 한다.

분단위의 주기적인 예약된 실행은 수많은 mail을 남기게 되며 오랜시간동안 mail을 지우지 않고 나둘 경우 /var 파티션의
inode가 full이 나서 시스템 전반에 악영향을 미칠 수도 있다. /var 별도의 파티션으로 나눠져 있지 않을 경우 아주 오랜 시간이 지나지 않는 이상 문제가 발생되지 않지만 /var가 별도로 나눠져 있고 사이즈가 작다면 오랜시간이 지나서 문제가 발생할 수 있다.

따라서 문제가 생기지 않게 하려면 mail을 발송하지 못하게 막아야 하는데,
crontab 실행 후 불필요한 메일이 쌓이지 않게 하는 방법은 3가지가 있다.
1.crontab 리스트의 맨 첫줄에 아래를 삽입한다.
MAILTO=""

2. 개별적으로 메일이 안날라오게 하려면 출력을 null로 보낸다.(파란색 부분 추가)
*/1 * * * * /bin/bash /usr/local/script/UserDelCheck.sh >& /dev/null

3. 개별적으로 다른 파일로 로그형태로 빼려면 아래와 같이 처리한다.(파란색 부분 추가)
*/1 * * * * /bin/bash /usr/local/script/UserDelCheck.sh > /home1/irteam/logs/cronlog/iims2_file_sync_beta.log 2>&1


다음은 각종 crond(daily, weekly, monthly)의 스케쥴링 실행 후 메일 발송 금지방법
1. 모든 crond 작업에 대해서 메일발송 금지
vi /etc/crontab
#MAILTO=root
MAILTO=""

2. 개별적으로 조작하려면 위의 crontab 처럼 설정하면 된다.

crontab, crond 실행 후 mail 발송 금지

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다