
아래 크론 작업에서 "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
.