Linux crontab 定时任务没有日志的问题
2024年3月5日 • ☕️ 1 min read
一直以来都用 crontab 跑定时任务将 n1 盒子的 ipv6 地址同步到域名 DNS 解析记录上,但是这两天突然发现定时任务不执行了,想看看 crontab 的日志,但是发现网上说的路径下并没有日志,原来 Ubuntu 默认是不开启 crontab 日志的
打开crontab日志
编辑以下文件
vi /etc/rsyslog.d/50-default.conf
将cron前面的注释符去掉
cron.* /var/log/cron.log
重启 rsyslog
service rsyslog restart
现在就能看到 crontab 的日志了
less /var/log/cron.log
发现这里只有执行记录,并没有详细的日志
Mar 5 20:40:20 armbian CRON[1748]: (elvis) CMD (node /root/update_ipv6_address_to_namesilo.js)
Mar 5 20:40:20 armbian CRON[1745]: (CRON) info (No MTA installed, discarding output)
安装邮件管理服务
在 crontab 的日志中有这样一行记录:CRON[1745]: (CRON) info (No MTA installed, discarding output)
,这意味着你没有安装邮件管理服务,而 crontab 每次执行完任务,输出信息是通过电子邮件的方式发给当前用户的,所以我们需要安装邮件管理服务:
apt-get install postfix
service postfix start
然后就可以在对应用户的邮件目录看到日志了
/var/mail/<user>