Cronjob 항목에서 "/dev/null 2>&1"의 의미는 무엇입니까?

Cronjob 항목에서 "/dev/null 2>&1"의 의미는 무엇입니까?

아래 크론 작업에서 "2>&1"이 수행되는 의미가 무엇인지 누군가 나에게 설명해 줄 수 있습니까?

0 23 * * * wget -q -O /dev/null "https://example.com/index.php" > /dev/null 2>&1

답변1

이는 stderr( 2- 실행된 명령 또는 스크립트의 오류 메시지 포함)이 ( >&)에서 stdout( 1- 명령의 출력)으로 리디렉션되고 후자가 /dev/null(null 장치)로 리디렉션되고 있음을 의미합니다.

이렇게 하면 실행된 명령으로 인해 발행될 수 있는 모든 메시지를 억제할 수 있습니다. cron에서는 서비스 스크립트의 관련 없는 메시지로 인해 스팸을 받는 것을 방지하기 위해 종종 수행됩니다. 그럼에도 불구하고 일부 메시지는 중요할 수 있으므로 주의하세요.

출력 리디렉션에 대한 자세한 내용은 Linux 문서 프로젝트에서 찾을 수 있습니다.여기그리고여기. 널 장치가 설명되어 있습니다.여기.

답변2

@digijay의 답변을 조금 확장하여 "무엇을 > /dev/null 2>&1하는가" 하지만 "그게 왜 거기 있지?".

1.Cron 작업은 다양한 시스템 파일에 적절한 데이터를 기록합니다. 예를 들어,크론 오류를 기록하는 인기 있는 대상/var/log/cron, /var/log/messages및 을 포함합니다 /var/log/syslog.

2.기본적으로 cron 작업은 cronjob을 실행하는 사용자 계정으로 이메일을 보냅니다.

그래서 사건을 피하기 위해1그리고2(정보/오류 로그를 보거나 cron에서 이메일을 받는 것을 원하지 않고 단지 cron이 자동으로 작동하기를 원할 뿐입니다.) stderr및를 stdout로 리디렉션해야 합니다 /dev/null.

관련 정보