내 crontab 로그 파일은 어디에 있나요?

내 crontab 로그 파일은 어디에 있나요?

아니요 /var/log/cron, /var/log/cron.log내 Debian 7에는 없습니다. 내 crontab 로그 파일은 어디에 있나요?

ls /var/log/cron*
ls: cannot access /var/log/cron*: No such file or directory

답변1

debian cron로그에 쓰는 것 같아요 /var/log/syslog.
시스템이 이에 의존 rsyslog하거나 in 또는 for 행 syslogd을 확인하고 주석 처리를 제거할 수 있는 경우:/etc/rsyslog.conf/etc/syslog.conf

# cron.* /var/log/cron.log

그런 다음 서비스를 다시 시작하십시오.

systemd예를 들어, 시스템이 이에 의존하는 경우 다음 명령을 사용하여 확인할 수 있습니다.

journalctl _COMM=cron

또는

journalctl _COMM=cron --since="date" --until="date"

날짜 형식을 확인하려면journalctl.

답변2

데비안 태그가 지정되지 않았고 Fedora 검색에도 표시되지 않으므로 최신(시스템 기반) Fedora를 확인하는 방법은 다음과 같습니다.

sudo systemctl status crond

일반적인 출력

● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-09-29 16:09:21 CEST; 47min ago
 Main PID: 1167 (crond)
    Tasks: 1
   Memory: 2.8M
      CPU: 948ms
   CGroup: /system.slice/crond.service
           └─1167 /usr/sbin/crond -n

Sep 29 16:09:21 ncelrnd0216 systemd[1]: Started Command Scheduler.
Sep 29 16:09:21 ncelrnd0216 crond[1167]: (CRON) STARTUP (1.5.4)
Sep 29 16:09:21 ncelrnd0216 crond[1167]: (CRON) INFO (Syslog will be used instead of sendmail.)
Sep 29 16:09:21 ncelrnd0216 crond[1167]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 31% if used.)
Sep 29 16:09:21 ncelrnd0216 crond[1167]: (CRON) INFO (running with inotify support)

그리고 all로그

journalctl --unit crond -n all

답변3

기본적으로 작업 출력은 crontab소유 사용자의 로컬 이메일 주소로 전송됩니다. 예: crontab호스트의 출력이 전송됩니다. 시스템은 작업을 완료하기 위해 기본 메일러를 사용합니다.aUserwww.aDomain.com[email protected]

MAILTOcrontab 파일에 명령문을 추가하여 이 출력을 대체 이메일 주소로 전환할 수 있습니다. 예를 들어:

# Mail any output to [email protected], no matter whose crontab this is
[email protected]
# Run the following command ten minutes after midnight, every day
10 0 * * *       $HOME/bin/aJob.sh 

crontab 로그를 수신하기 위해 외부 이메일 주소를 사용할 때는 주의하십시오. 자주 보내는 메시지는 스팸 필터에 걸러질 수 있습니다. 그런 다음 메시지를 다음으로 표시해야 합니다.스팸 아님Yahoo, HotMail 또는 Gmail과 같은 서비스와 함께 작동합니다.

또 다른 해결책은 crontab 명령의 출력을 선택한 파일로 리디렉션하는 것입니다. 아래 예에서는 stdoutstderr출력이 로 전송됩니다 /tmp/aJob.log. 이 방법을 사용하면 이메일을 보낼 가능성이 제거됩니다.

# Run the following command ten minutes after midnight, every day
10 0 * * *       $HOME/bin/aJob.sh >> /tmp/aJob.log 2>&1

또 다른 옵션은 stderr로그를 이메일로 보내고 stdout로그를 파일로 보내는 것입니다. 이 경우 명령 으로 인해 예기치 않은 오류 메시지가 생성 crontab되면 이메일 알림을 받게 됩니다 . 이전 예제와의 차이점은 2>&1이 예제가 제거되어 stderr출력을 콘솔과 이메일로 보낼 수 있다는 것입니다.

# Mail any output to [email protected], no matter whose crontab this is
[email protected]    
# Run the following command ten minutes after midnight, every day
10 0 * * *       $HOME/bin/aJob.sh >> /tmp/aJob.log

더 읽어보세요예약된 작업 목록그리고예약된 작업 명령

답변4

2020년: Google이 비슷한 일에 저를 초대했습니다.

/var/log/messagessystemd를 사용하는 배포판의 경우 더 이상 or 가 없습니다 /var/log/cron.

저널 데몬은 systemd를 사용하여 로깅을 처리합니다.

cron이 스크립트를 실행 중인지 확인하고 로그를 추적하려면 다음을 사용하세요.

journalctl -u cron.service -f

관련 정보