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: 권한이 거부됨

(이상한 오류인 것은 이해하지만 이는 예입니다. 오류를 해결하고 침묵시켜야 한다는 것을 알지만 왜 일반적인 방법으로는 침묵시킬 수 없는지 알고 싶습니다.)

질문은 다음과 같습니다. 작업 결과를 리디렉션할 때나 || true로 작업 결과를 변경하려면 cron이 계속 이메일을 보내나요? (링크된 질문에서) 내가 찾을 수 있는 유일한 해결책은 다음을 추가하는 것입니다.

메일토=""

"정상적인"(또는 스팸이 아닌) 크론 작업 이후(그리고 다른 작업 이전).

관련 질문:/dev/null/에 대한 cronjob을 완전히 침묵시키려면 어떻게 해야 합니까?.

답변1

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

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

관련 정보