linux下开启crontab日志

ubuntu

默认情况下ubuntucrontab日志并未开启,我们无法得知crontab是否成功执行,也无法做日志分析。

ubuntu下开启crontab日志

分步操作

shell
1
vim /etc/rsyslog.d/50-default.conf

修改如下内容

/etc/rsyslog.d/50-default.conf
1
cron.* /var/log/cron.log #将cron前面的注释符去掉

重启rsyslog

shell
1
2
service rsyslog restart
service cron restart

单条命令操作

shell
1
sed -i 's/#\(cron.*\)/\1/' /etc/rsyslog.d/50-default.conf && service rsyslog restart && service cron restart

查看结果

查看 /var/log/cron.log 文件,可以看到已经有了日志

shell
1
2
3
4
5
6
7
8
9
10
# cat /var/log/cron.log
Jan 7 15:02:18 ubuntu-test-6 cron[15494]: (CRON) INFO (pidfile fd = 3)
Jan 7 15:02:18 ubuntu-test-6 cron[15495]: (CRON) STARTUP (fork ok)
Jan 7 15:02:18 ubuntu-test-6 cron[15495]: (CRON) INFO (Skipping @reboot jobs -- not system startup)
Jan 7 15:04:01 ubuntu-test-6 CRON[15664]: (root) CMD (/usr/sbin/ntpdate 192.168.1.132)
Jan 7 15:04:09 ubuntu-test-6 CRON[15663]: (CRON) info (No MTA installed, discarding output)
Jan 7 15:06:01 ubuntu-test-6 CRON[15671]: (root) CMD (/usr/sbin/ntpdate 192.168.1.132)
Jan 7 15:06:08 ubuntu-test-6 CRON[15670]: (CRON) info (No MTA installed, discarding output)
Jan 7 15:08:01 ubuntu-test-6 CRON[15678]: (root) CMD (/usr/sbin/ntpdate 192.168.1.132)
Jan 7 15:08:07 ubuntu-test-6 CRON[15677]: (CRON) info (No MTA installed, discarding output)

如果出现 No MTA installed, discarding output 那么就是说,crontab 执行脚本时是不会直接错误的信息输出,而是会以邮件的形式发送到你的邮箱里,这时候就需要邮件服务器了,如果你没有安装邮件服务器,它就会报这个错。如果是测试,可以用下面的办法来解决:

  • 在每条定时脚本后面加入:>/dev/null 2>&1

就可以解决 No MTA installed, discarding output 的问题。

CentOS

CentOS 下 /etc/rsyslog.conf 中可以看到默认已开启了 cron 日志

shell
1
2
# grep -F "cron.*" /etc/rsyslog.conf
cron.* /var/log/cron

并且日志已做日期切割

shell
1
2
# ls /var/log/cron*
/var/log/cron /var/log/cron-20191215 /var/log/cron-20191222 /var/log/cron-20191229 /var/log/cron-20200105
评论

:D 一言句子获取中...

加载中,最新评论有1分钟缓存...