at_shiita.ishigaki
2021年10月21日 11時31分
cronのログを有効にするには /etc/default/cronファイルのEXTRA_OPTSを設定します。
※ここでは例として、すべてのログを有効にするEXTRA_OPTS='-L 15'とします。
[armadillo ~]# vi /etc/default/cron
# Cron configuration options
# Whether to read the system's default environment files (if present)
# If set to "yes", cron will set a proper mail charset from the
# locale information. If set to something other than 'yes', the default
: (省略)
# For quick reference, the currently available log levels are:
# 0 no logging (errors are logged regardless)
# 1 log start of jobs
# 2 log end of jobs
# 4 log jobs with exit status != 0
# 8 log the process identifier of child process (in all logs)
#
EXTRA_OPTS='-L 15' < #を削除し有効化+変更
(vi終了)
次に、syslogのcronの出力を有効にするために、/etc/rsyslog.conf を編集し、rsyslog.serviceを再起動する必要があります。
[armadillo ~]# vi /etc/rsyslog.conf
# /etc/rsyslog.conf configuration file for rsyslog
#
# For more information install rsyslog-doc and see
: (省略)
*.*;auth,authpriv.none -/var/log/syslog
cron.* /var/log/cron.log < #を削除し有効化
daemon.* -/var/log/daemon.log
: (省略)
(vi終了)
[armadillo ~]# systemctl restart rsyslog.service
cronで実行するコマンドを設定し、cron.serviceを再起動します
※ここでは例として、1分ごとに cat hogeを行います。
[armadillo ~]# crontab -e
# Edit this file to introduce tasks to be run by cron.
: (省略)
# m h dom mon dow command
*/1 * * * * cat hoge < 追加
(vi終了)
[armadillo ~]# systemctl restart cron.service
cronでコマンドが実行後に、/var/log/cron.logにログが書き込まれます。
hogeというファイルが存在しないため、エラーが表示されていることが確認できます。
[armadillo ~]# cat /var/log/cron.log
Oct 20 18:44:17 armadillo cron[1440]: (CRON) INFO (pidfile fd = 3)
Oct 20 18:44:17 armadillo cron[1440]: (CRON) INFO (Skipping @reboot jobs -- not system startup)
Oct 20 18:45:01 armadillo CRON[1445]: (root) CMD ([1446] cat hoge)
Oct 20 18:45:01 armadillo CRON[1445]: (CRON) error (grandchild #1446 failed with exit status 1)
Oct 20 18:45:01 armadillo CRON[1445]: (root) MAIL (mailed 37 bytes of output but got status 0x0001 from MTA#012)
Oct 20 18:45:01 armadillo CRON[1445]: (root) END ([1446] cat hoge)