내 crontab에는 다음 작업이 있습니다.
0 */4 * * * /usr/bin/mysqldump -u root -p'PASSWORD' --all-databases | /bin/gzip -9 > /home/USER/_mysql_backup/`date "+\%F--\%H-\%M"`.databases.sql.gz ; rm -f /home/USER/_mysql_backup/`date '+\%F' --date '1 week ago'`.databases.sql.gz >/dev/null 2>&1
문제는 그것이 내 시스템 로그를 가득 채우는 것입니다. 이를 추가하면 작업이 기록되지 않을 것이라고 생각합니다 >/dev/null 2>&1
. 하지만 이전 명령을 실행하기 전에 추가해야 합니까 ;
?
답변1
crontab에 명령어를 적으면아무것stdout으로 변환하면 cron이 해당 출력을 가져와 메일로 보내려고 합니다. 분명히 MTA가 설치되어 있지 않으므로 cron은 메일 메시지를 보낼 수 없으며 로그 파일에 실패를 기록합니다.
cron 작업이 표준 출력에 무엇을 쓰고 있는지 확인하려면 MTA를 설치해야 합니다. cron은 출력을 메일로 보내며 메일링이 성공하므로 아무 것도 기록하지 않을 것입니다.
출력을 보고 싶지 않으면 /dev/null로 리디렉션하세요. 그러나 일부 cron 작업이 예기치 않게 출력을 생성하더라도 cron이 만족하도록 MTA를 설정하겠습니다.
crond(8) 맨페이지에 자세한 내용이 설명되어 있습니다.