cron任务不执行怎么办?cron定时任务攻略

更新: 2016-08-04 21:31 作者:

通过cron编写定时任务,是运维人员最基本的技能要求之一,别看cron简单,但出问题的概率并不小,除了要掌握cron的基本编写技术,如何查日志,如何排错也是很重要的一环。

用crontab -l可列出当前用户的所有任务,用crontab -u 用户名 -l可列出指定用户的定时任务,使用crontab -e可以对当前用户的任务进行编辑,而使用crontab -u 用户 -e编辑特定用户的任务。

cron任务不执行怎么办?cron定时任务攻略

用crontab -r可以清除当前用户的定时任务,除了上述查看和制订定时任务的方案,还有一个全局制订定时任和的方式。进入到etc目前下,下面有cron.hourly和cron.weekly和cron.monthly三个目录。

cron任务不执行怎么办?cron定时任务攻略

只要将生成好的shell角本放入到这几个目录的相应目录中,那按上述三个的英文时间系统就会直接执行目录下的shell角本,当然这种方式需要有root权限,普通用户无法使用。

cron任务不执行怎么办?cron定时任务攻略

定时任务不执行,首先要确保crond进程在运行中,如该进程不存在,后面再弄也是白折腾,可用ps -ef|grep crond进行确认,用service crond start来启动定时任务守护进程。

cron任务不执行怎么办?cron定时任务攻略

如果任务不执行,可以优先使用crontab -e进行编辑模式,查看编写任务的格式是否正确,进入后是调用vi进程编辑,基本的格式是* * * * * sh,其中前五位代表时间,最后代表要执行的命令。

cron任务不执行怎么办?cron定时任务攻略

五位时间分别代表了分、小时、日、月、周五种不同纬度的时间单位,其中最后一位周是表示周一到周日,可用1-7表示,也可以用英文相应的星期几表示,月也可以同时支持英文和阿拉伯数字

cron任务不执行怎么办?cron定时任务攻略

在偏高版本的linux中都支持/和-的写法,如第一位的*/5代表每5分钟执行一次任务,而第一位、第二位0  2-8/2代表了从2点到8点,每隔2小时整点执行一次任务。

cron任务不执行怎么办?cron定时任务攻略

如果不熟悉也关系不大,可以从其它人目录下复杂过来,再改改就行了,所有的定时任务都位于/var/spool/cron目录下,之后就是按用户名分目录存放,直接复制过来,再用crontab -e修改下。

cron任务不执行怎么办?cron定时任务攻略

crontab中最后一位shell位可以直接使用linux命令也可以使用角本名,如使用角本首先要确认角本是有+x的可执行权限,而且具备相应的环境参数,很多时候都是因为这两个原因无法执行。

cron任务不执行怎么办?cron定时任务攻略

定时任务守护进程在/var/log目录下会生成日志,文件名就为cron,不过如果是某个任务执行不成功,很难在该日志看出端倪,缺省cron执行成功与否会给该该用户发mail

cron任务不执行怎么办?cron定时任务攻略

使用mail命令可以查看当前用户的邮件,查看有关cron的邮件就能获取到执行不成功的原因,也可以进入到/var/spool/postfix/maildrop目录下查看所有的邮件,挑最新时间的就可以。

cron任务不执行怎么办?cron定时任务攻略

在crontab编辑定时任务时,j最后的命令行要慎用以 >/dev/null 2>&1结尾,这行命令代表着不输出邮件和日志,因此应该在调试成功后再加,否则出错无法在日志中查找原因。

cron任务不执行怎么办?cron定时任务攻略