linux crontab不执行_IT运维之Linux下定时任务Crontab使用,不见得你会!

crontab是Unix、Linux操作系统下用于设置周期性执行任务的指令,首先crontab分系统crontab和用户crontab,路径也不同,如下:

系统crontab:

路径:/etc/crontab

ca4918eebb00a887d77b70430481544b.png

图1 系统crontab文件

用户crontab:

路径:/var/spool/cron/当用户名

62c525e410d07b7ddbac1ccf11db32fb.png

图2 当前用户crontab文件

其次:要区分以下三个概念,不要混淆。

  • cron:任务名称
  • crond:任务守护进程,用于时刻检查crontab中预设的作业任务,可以通过ps -ef|grep crond查看进程是否启动。
  • crontab:任务调度表,存放任务。

一、crontab常见命令

crontab [-u user] [-l | -r | -e] [-i]

-l:列出当前用户的计划任务。

-e:编辑当前用户的计划任务。

-r:删除当前用户的所有计划任务。即删除/var/spool/cron/USERNAME文件。

-u:管理指定用户的计划任务,仅root有权限。

-i:在使用-r选项删除所有任务时提示用户确认。

二、如何启动一个crontab定时任务

首在任务装载之前,我们执行以下命令:

crontab -l

8d920735073eac8aea43d8672f9055f9.png

图1 crontab任务为空

此时crontab是空的,没有装载任何任务,下面我们往crontab里写一个定时任务:

1、创建一个名为cron的crontab文件,内容如下:

32 10 * * * /bin/echo ‘date’ > /dev/console

保存后,给此文件赋予可执行权限 chmod +x cron

2、装载任务

crontab cron

b1c3931e239cbeb6005110d7dfb7a647.png

图2 任务信息

任务提交crontab之后,在/var/spool/cron路径下会生成cron的副本,以当前用户命名,如:我当前用户是root,此时在这个路径下,生成了root用户,内容跟cron文件的一模一样。

e4bcfdabae8883490e0e511c4d6fe3b5.png

图3 cron的副本文件

这样到点就开始执行了。

三、如何确定crontab任务是否到点执行,以及SHELL有无报错?

要判断crontab是否到点执行,我们需要查看:

more /var/log/cron

8ddb86e5868922ddf86cf462ae24c7f0.png

图4 检查是否到点执行

如果任务到点执行了,但是没有达到预期,那就要怀疑SHELL脚本执行是否出错了,可以查这里:

cd /var/spool/mail/root

aba9a5ab733b62de09aef9999255ea6d.png

图5 mail邮件通知

如上图:我故意将路径写错,到点执行后报错,系统收到mail通知。

四、编辑crontab任务

[root@ultrapower mail]# crontab -e

50 15 * * * /bin/echo ‘date’ > /dev/console

五、删除crontab任务

[root@ultrapower mail]# crontab -r

[root@ultrapower mail]# crontab -l

no crontab for root

[root@ultrapower mail]#

OK,到此为止,如果哪里还不清楚,请在评论区留言,看到会回复。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值