cron / crontab 로그는 어디에 있습니까?


753

cron 작업이 언제 실행되고 있는지 확인하고 싶습니다. 내 sudo crontab -e직업에 대한 로그가 있다고 생각 하지만 어디에서?

나는 구글을 검색하고 /var/log(이름에 'cron'이없는 것을 보지 않는) 권장 사항을 발견 하고 내가 가지고 있지 않은 파일을 편집하는 /etc/syslog.conf것을 발견했다.

답변:


895

기본 설치에서 cron 작업이 로그인됩니다

/var/log/syslog

실행하여 해당 로그 파일에서 cron 작업 만 볼 수 있습니다.

 grep CRON /var/log/syslog

아무것도 재구성하지 않은 경우 항목이 거기에 있습니다.


46
MTA가 설치되어 있지 않으면 cron은 작업 출력을 버립니다.
Barry Kelly

11
크론 로그는 /var/log/디렉토리의 다른 파일에있을 수 있습니다 . cron.log 또는 동등한 항목을 확인하십시오.
Navigatron

4
이것은 나에게 직업의 결과를 제공하지 않습니다. 그것은 cron이 처리되었다는 일반적인 메시지를 제공합니다.
chovy

2
AWS에서 / var / log / cron
tsukimi

5
@shadi 당신은 또한 수 grep -i CRON대소 문자를 구별하지 검색합니다
nafg

236

syslog에 표시되는 CRON 항목 만 포함하도록 cron.log 파일을 작성할 수 있습니다. 다음 지시 사항을 수행하면 CRON 작업이 여전히 syslog에 표시됩니다.

파일을여십시오

/etc/rsyslog.d/50-default.conf

다음으로 시작하는 줄을 찾으십시오.

#cron.*

해당 줄의 주석을 해제하고 파일을 저장 한 다음 rsyslog를 다시 시작하십시오.

sudo service rsyslog restart

이제 여기에 크론 로그 파일이 나타납니다.

/var/log/cron.log

이제 Cron 활동이 syslog와 함께이 파일에 기록됩니다.

cron.log에는 cron이 /etc/cron.hourly, cron.daily 등에서 스크립트를 실행할 때의 항목이 표시됩니다. 예를 들면 다음과 같습니다.

Apr 12 14:17:01 cd CRON[14368]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

그러나 스크립트가 cron.log (또는 다른 로그 파일)로 출력을 지시하지 않으면 /etc/cron.daily 또는 /etc/cron.hourly 내에서 실제로 실행 된 스크립트에 대한 자세한 정보는 표시되지 않습니다.

crontab이 실행 중인지 확인하고 cron.log 또는 syslog에서 검색 할 필요가없는 경우 출력을 선택한 로그 파일로 리디렉션하는 crontab을 작성하십시오.

01 14 * * * /home/joe/myscript >> /home/log/myscript.log 2>&1

그러면 실행되는 스크립트에서 생성 된 모든 표준 출력 및 오류가 지정된 로그 파일로 리디렉션됩니다.


1
내 의견으로는,이 답변은 미래에 더 좋습니다. 따라서 syslog 파일이 더 명확합니다.
shgnInc

9
syslog에서 cron 로그를 제외 시키려면 행 *.*;auth,authpriv.none -/var/log/syslog을로 변경하십시오 *.*;auth,authpriv.none,cron.none -/var/log/syslog.
코엔.

CentOS 6에서 cron. *은 /etc/rsyslog.conf에 정의되어 있지만 rsyslog.d 폴더에는 비어 있습니다.
Scott Chu

무엇 2>&1을 의미합니까?
John Joe

2
@JohnJoe 2> & 1은 stderr을 stdout으로 전달하는 데 사용됩니다.이 방법으로 stderr을 로그 파일에 가져올 수도 있습니다.
Sampo Sarrala

79

이 경우 지속적으로 모니터링하는 것이 유용 할 수 있습니다.

tail -f /var/log/syslog | grep CRON

10
글쎄, 당신은 아마 사용하려면 -F이 잘립니다 때 /에 이동할 수 있도록 예를 들어, 이름 변경에서 파일을 따를 것이다, /var/log/syslog.1.gz당신은 여전히 현재 다음하고 /var/log/syslog파일. 남자 문서에 따르면, 이것은 달리기와 같습니다tail xxxx -f --retry
Momer

37

가독성을 높이기 위해 개별 크론 작업의 출력을 자체 로그로 보낼 수도 있습니다. 어딘가에 날짜 출력을 추가하면됩니다.

 0 15 * * *    /home/andrew/daily-backup.sh >> /var/log/daily-backup.log 2>&1

4
true이지만 구문 오류로 인해이 행이 실행되지 않으면 지정된 출력 로그에 아무것도 기록되지 않습니다.
랩터

11
로그 파일을 지정한 후 2> & 1을 추가하여이 문제를 해결할 수 있습니다. 또한 cronjob을 crontab에 추가하기 전에 cronjob을 테스트 한 다음 crontab의 형식이 올바른지 확인하기 위해 첫 번째 예약 된 실행에 참석하는 것이 좋습니다.
Andrew Meyer

10

systemd시스템에 설치 한 경우 journalctl명령 을 사용하여 cron 작업 로그를 표시 할 수 있습니다 .

예를 들어, 우분투 17.10에서 :

journalctl -u cron.service

9

이것은 매우 오래된 질문이지만 이러한 답변 중 어느 것도 만족스럽지 않습니다.

먼저 cron 작업을 1 분마다 실행 한 다음 테스트 로깅을 사용하여 cron을 비 데몬으로 실행하십시오 (일시적으로 이미 시작된 크론을 죽이십시오).

crond -nx test

그리고 터미널을 통해 흐르는 프로그램 실행 로그를 참조하십시오.


7
- 14.04에서 실행되지 않습니다No command 'crond' found, did you mean: Command 'cron' from package 'cron' (main)
G-.

8

그것은에 /var/log/syslog기본적으로.

그러나 별도의 cron.log를 작성하도록 설정하면 더 유용합니다.

이 Q & A는 프로세스를 설명합니다.

16.04 : cron에서 cron.log를 작성하고 실시간으로 모니터링하게하려면 어떻게합니까?

또한이 답변 wcron에는 거의 실시간으로 표시 되는 명령 을 만드는 지침이 있습니다 . 또한 다른 답변으로 연결됩니다.

크론 로그 수준을 변경하는 방법?

이것은 작업 시작 이상을 포함하도록 로그 수준을 변경하는 방법을 보여줍니다. 수준 15에는 오류와 종료 시간도 표시됩니다.


5

페 도아 29와 RHEL 7

journalctl -t CROND

로부터 journalctl수동 :

   -t, --identifier=SYSLOG_IDENTIFIER|PATTERN
       Show messages for the specified syslog identifier SYSLOG_IDENTIFIER, or for any of the messages with a "SYSLOG_IDENTIFIER" matched by PATTERN.

       This parameter can be specified multiple times.

3

cron의 출력을 tmp 파일로 리디렉션 할 수 있습니다

00 11 07 * * / bin / bash /home/ubuntu/command.sh> / tmp / output 2> & 1

오류 및 일반 출력 모두 동일한 파일로 리디렉션됩니다


2

앞에서 언급했듯이 크론 작업은 /var/log/syslog

syslog를 파이프하여 다음과 같이 CRON 로그를 grep하고 필터링 할 수 있습니다.

less /var/log/syslog | grep CRON 

다음과 같이 crontab 로그를 검색 할 수 있습니다

less /var/log/syslog | grep CRON | grep <search-keyword-comes-here>

다음과 같이 gz 파일에 저장된 crontab 기록 로그를 검색 할 수 있습니다

less /var/log/syslog.2.gz | grep CRON | grep <search-keyword-comes-here>

항상 로깅 메커니즘을 사용하는 것이 좋으며 서버에 ELK 를 신속하게 설정할 수 있으며 logz를 실험 할 수도 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.