/etc/crontab文件的权限设置
Linux crontab和Windows task schedules非常的相似。Crontab可以用来在系统中定期的执行任务。比如:写了一个爬虫需要每天早上八点执行,就可以用到Crontab;安装的Tomcat服务器需要每天凌晨重启一次,也可以使用到Crontab。总之,几乎所有的定时任务,我们都可以通过Crontab这个工具来完成。但如果/etc/crontab 文件权限设置不正确,crontab不会自动执行任务。
/etc/crontab文件的权限查看
查看cron的运行状态:
# sudo /etc/init.d/cron status
cron.service - Regular background program processing daemon
ActivLoaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)e: active (running) since Tue 2019-09-17 17:17:06 CST; 22h ago
Docs: man:cron(8)
Main PID: 381 (cron)
Tasks: 1 (limit: 1475)
Memory: 1.4M
CGroup: /system.slice/cron.service
└─381 /usr/sbin/cron -f
9月 18 14:39:01 yahboom4wd systemctl[1]: Started Reguler background program processing daemon
9月 18 14:39:01 yahboom4wd CRON[21004]: (CRON) INFO (pidfile fd = 3)
9月 18 14:39:01 yahboom4wd CRON[21004]: (*system*) WRONG FILE OWNER (/etc/crontab)
9月 18 15:09:01 yahboom4wd CRON[21004]: (CRON) INFO (skipping @reboot jobs -- not startup)
查看cron已激活 ,但运行有错误WRONG FILE OWNER(/etc/crontab)。
输入命令查看/etc/crontab的运行owner及权限
# ls /etc/crontab -lh
-rwxrwxrwx 1 username username 758 9 18 11:40 /etc/crontab
原因在于crontab的owner必须为root,将owner及group更改为root。
# sudo chown root:root /etc/crontab
再重启cron service,
# sudo /etc/init.d/cron restart
查看cron运行状态
#sudo /etc/init.d/cron status
cron.service - Regular background program processing daemon
ActivLoaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)e: active (running) since Tue 2019-09-17 17:17:06 CST; 22h ago
Docs: man:cron(8)
Main PID: 381 (cron)
Tasks: 1 (limit: 1475)
Memory: 1.4M
CGroup: /system.slice/cron.service
└─381 /usr/sbin/cron -f
9月 18 14:39:01 yahboom4wd systemctl[1]: Started Reguler background program processing daemon
9月 18 14:39:01 yahboom4wd CRON[21004]: (CRON) INFO (pidfile fd = 3)
9月 18 14:39:01 yahboom4wd CRON[21004]: (*system*) INSECURE MODE (group/other writable) (/etc/crontab)
9月 18 15:09:01 yahboom4wd CRON[21004]: (CRON) INFO (skipping @reboot jobs -- not startup)
cron还是没有正常运行,(system) INSECURE MODE (group/other writable) (/etc/crontab)是指/etc/crontab文件的权限设置错误。
# sudo chmod 644 /etc/crontab
继续重启cron,
# sudo /etc/init.d/cron restart
cron运行正常,再用ls /etc/crontab -lh查看权限,
ls /etc/crontab -lh
-rw-r--r-- 1 root root 1.1K 3月 11 2019 /etc/crontab
至此/etc/crontab权限设置正确,cron服务可以正常自动执行用户设置的任务。