
매 분마다 실행되도록 Cpanel에 crontab을 설정했습니다. 훌륭하게 작동하지만 매 순간 이메일을 받고 싶지는 않습니다. 매일 실행되는 두 번째 크론 탭이 있습니다. 이 탭의 응답을 받고 싶습니다. crontab에 자동으로 표시하거나 오류가 발생한 경우에만 이메일을 보내도록 지시하는 방법이 있습니까?
나는 가지고있다:
* * * * * php /home/public_html/folder/file.php 2>&1
내가 추가 한 마지막 부분은 2>&1
그것이 조용해질 것이라고 생각했기 때문입니다.
Cpanel 문서에서:
cron이 명령을 실행할 때마다 이메일을 보내도록 할 수 있습니다. 개별 cron 작업에 대해 이메일을 보내지 않으려면 다음과 같이 명령의 출력을 /dev/null로 리디렉션할 수 있습니다: mycommand >/dev/null 2>&1
답변1
" 조용함 -q
"을 의미하므로 출력을 생성하지 않습니다.
* * * * * php -q /home/public_html/folder/file.php
또한 매분마다 실행하려는 이유가 무엇인지 스스로에게 물어보십시오. 이는 약간 과도합니다.
답변2
2>&1
stderr에 기록된 모든 것을 stdout으로 리디렉션합니다.
>/dev/null
stdout을 /dev/null로 리디렉션합니다.
cron은 다른 곳으로 리디렉션되지 않는 한 stdout 또는 stderr로 전송된 모든 내용을 항상 이메일로 보냅니다. 이상적으로는 PHP 스크립트를 다시 작성하여 stdout에 쓸모없는 쓰레기 전체를 쓰지 않는 --quiet 플래그를 허용하도록 다시 작성해야 하며, 이를 cron 작업에서 사용할 수 있습니다.
게으른 사람의 선택은래퍼 스크립트명령이 0이 아닌 값으로 종료되지 않는 한 크론 작업을 통해 이메일을 보내지 못하게 됩니다.
답변3
올바른 설정은 다음과 같습니다.
>/dev/null
이렇게 하면 표준 출력이 무시되고 오류가 있는 경우에만 이메일을 받게 됩니다.
현재 설정은 표준 출력을 처리하지 않으므로 실행될 때마다 이메일을 받게 됩니다.