아니요 /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
호스트의 출력이 전송됩니다. 시스템은 작업을 완료하기 위해 기본 메일러를 사용합니다.aUser
www.aDomain.com
[email protected]
MAILTO
crontab 파일에 명령문을 추가하여 이 출력을 대체 이메일 주소로 전환할 수 있습니다. 예를 들어:
# 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 명령의 출력을 선택한 파일로 리디렉션하는 것입니다. 아래 예에서는 stdout
및 stderr
출력이 로 전송됩니다 /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/messages
systemd를 사용하는 배포판의 경우 더 이상 or 가 없습니다 /var/log/cron
.
저널 데몬은 systemd를 사용하여 로깅을 처리합니다.
cron이 스크립트를 실행 중인지 확인하고 로그를 추적하려면 다음을 사용하세요.
journalctl -u cron.service -f