cron이 이메일 전송을 중지하지 않거나 /dev/null로 리디렉션되지 않는 이유는 무엇입니까?

cron이 이메일 전송을 중지하지 않거나 /dev/null로 리디렉션되지 않는 이유는 무엇입니까?

몇 가지 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 작업 후(그리고 이러한 다른 작업 전).

관련 질문:/dev/null/의 cronjob을 완전히 침묵시키는 방법은 무엇입니까?.

답변1

/bin/sh: 1: cannot create 1: Permission denied오류는 리디렉션의 오타로 인해 발생할 수 있습니다. 아마도 2>&1당신은 2>1또는 2>1&. (일반적으로 홈 디렉터리에 이름이 지정된 파일을 만들려고 하면 1성공하지만 이름이 지정된 파일이 1이미 존재하고 쓸 수 없는 경우 해당 오류가 발생합니다.)

오류가 제거되지 않는 이유는 출력이 리디렉션된 명령에서 메시지가 나오지 않기 때문입니다. 이 메시지는 명령에 대한 리디렉션을 설정하려고 할 때 쉘에서 보고됩니다. 셸 자체의 출력은 리디렉션되지 않았으므로 메시지가 수집되어 cron이메일로 전송됩니다.

관련 정보