![cron이 이메일 전송을 중지하지 않거나 /dev/null로 리디렉션되지 않는 이유는 무엇입니까?](https://linux55.com/image/146773/cron%EC%9D%B4%20%EC%9D%B4%EB%A9%94%EC%9D%BC%20%EC%A0%84%EC%86%A1%EC%9D%84%20%EC%A4%91%EC%A7%80%ED%95%98%EC%A7%80%20%EC%95%8A%EA%B1%B0%EB%82%98%20%2Fdev%2Fnull%EB%A1%9C%20%EB%A6%AC%EB%94%94%EB%A0%89%EC%85%98%EB%90%98%EC%A7%80%20%EC%95%8A%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
몇 가지 cron 작업이 있는데 그 중 일부는 나에게 이메일 전송을 중단하지 않습니다.
예시 작업은 다음과 같습니다.
*/2 * * * * PHP 애플리케이션/콘솔 mautic:email:fetch > /dev/null 2>&1
(문제의 모든 작업은 수동 작업입니다.)
이메일을 피하기 위해 제가 시도한 몇 가지 팁은 다음과 같습니다.
> /dev/null
>/dev/null
>/dev/null 2>&1
>/dev/null 2>&1 || true
|| true
실행될 때마다 계속 이메일을 보냅니다.
이메일 예:
/bin/sh: 1: 생성할 수 없습니다. 1: 권한이 거부되었습니다.
(이상한 버그라는 건 알지만 이는 단지 예일 뿐입니다. 버그를 수정하고 침묵시켜야 한다는 것을 알지만 왜 일반적인 방법으로 침묵시킬 수 없는지 알고 싶습니다.)
문제는 작업 결과를 리디렉션하거나 ||를 사용하여 작업 결과를 변경하더라도 cron이 계속 이메일을 보내는 이유는 무엇입니까? (링크된 질문에서) 내가 찾을 수 있는 유일한 해결책은 다음을 추가하는 것이었습니다.
이메일 주소=""
"정상"(또는 스팸이 아닌) cron 작업 후(그리고 이러한 다른 작업 전).
답변1
이 /bin/sh: 1: cannot create 1: Permission denied
오류는 리디렉션의 오타로 인해 발생할 수 있습니다. 아마도 2>&1
당신은 2>1
또는 2>1&
. (일반적으로 홈 디렉터리에 이름이 지정된 파일을 만들려고 하면 1
성공하지만 이름이 지정된 파일이 1
이미 존재하고 쓸 수 없는 경우 해당 오류가 발생합니다.)
오류가 제거되지 않는 이유는 출력이 리디렉션된 명령에서 메시지가 나오지 않기 때문입니다. 이 메시지는 명령에 대한 리디렉션을 설정하려고 할 때 쉘에서 보고됩니다. 셸 자체의 출력은 리디렉션되지 않았으므로 메시지가 수집되어 cron
이메일로 전송됩니다.