Linux系统可以使用crontab实现定时任务和自动化操作,本文对此进行简要说明。
执行如下命令,列出所有的定时任务,如果没有定时任务,返回no crontab for root信息。
crontab -l
crontab -e
5 * * * * /etc/cpu_monitor.sh
#开机后,每5分钟执行一次CPU监控脚本。
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
# 每晚的21:30重启Apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
#每月1、10、22日的4:45重启Apache。
执行crontab -l
命令,查看已经配置的定时任务。
提示:定时任务进行清理、删除、更改配置操作,有一定风险,请在操作前创建系统快照,进行备份。
crontab -r
crontab -e
使用非root用户在执行crontab -l
或crontab -e
等命令时,出现如下报错。
You (***) are not allowed to use this program (crontab)
这是由于crontab任务有权限控制,非root用户默认没有操作crontab的权限。可以通过创建文件/etc/cron.allow
或者/etc/cron.deny
文件来控制权限。
/etc/cron.allow
文件存在,那么只有这个文件中列出的用户可以使用cron,/etc/cron.deny
文件不被匹配。/etc/cron.allow
文件不存在,那么cron.deny文件中列出的用户将不能使用cron。
遇到类似问题,请切换到root用户,按以下步骤检查。
/etc/cron.deny
文件中是否有非root用户的用户名。service crond restart
使用Linux系统crontab服务创建定时任务时执行失败。进入crontab主目录,发现没有该目录。
该问题是由于crontab应用包未安装,或安装后程序文件损坏导致。
yum install vixie-cron
yum install crontabs
注:
- vixie-cron为依赖程序。
- crontabs为任务程序。
crontab -e
命令,确认正常编辑新的计划任务,或执行crontab -l
命令查看已存在的历史任务。