본문
crontab, crond 실행 후 mail 발송 제한
# crontab, crond 실행 후 mail 발송 제한
crontab의 예약된 작업은 실행 후 해당 crontab 소유자에게 mail을 발송한다.
분단위의 주기적인 예약된 실행은 수많은 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
** /dev/null
리눅스 null 장치 파일 (null device, bit bucket, black hole)
- 주로 불필요한 출력 스트림을 버리는 곳으로 사용됨
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 처럼 설정하면 된다.
댓글