Debian中crontab不运行的坑
因为Centos已经不维护了,所以计划切换到Debian。选Debian的理由不多讲了。这几天配置了一台Debian 11进行了一些测试。因为业务需要进行定时任务的执行,按之前在Centos下的思路,通过crontab -e 加入了任务成功后生成的文件在/var/spool/cron/crontabs/root。再通过 crontab -l 查看一切正常,但却死活没有按设定时间执行,查看cron日志也为空。通过一番折腾后,解决方式如下:
1、打开cron日志,日志是通过syslog的来管理的,直接在syslog的配置文件/etc/rsyslog.conf文件中cron.*的位置开启(去掉注释)即可 。
2、通过cron的日志查找原因,可通过重启cron(systemctl restart cron)来产生日志;
3、发现日志中,有句" INSECURE MODE (mode 0600 expected) (crontabs/root) ",这句就是关键,意思就是文件权限不是600,不给执行。
4、解决方式很简单,就是给文件/var/spool/cron/crontabs/root的权限设为0600即可。
5、设置完后,再次重启cron(systemctl restart cron),观察一下任务终于定时执行了。查看日志一切正常。
6、打扫:将相关的日志关掉(节省资源呀)、把调试的去掉,搞定。
当前共有0条评论,我也要发表: