crontab 定时任务

一、crontab
1.1 简介
在Linux中,周期执行的任务一般由cron这个守护进程来处理,可以在无需人工干预的情况下运行作业。
1.2 crontab服务
1.2.1查看crontab运行状态
service crond status
1.2.2 启动
要使用crontab定时器工具,必须要启动cron服务:
service crond start 或者/etc/rc.d/init.d/crond start
1.2.3 加入开机自动启动
chkconfig --level 35 crond on
查看是否已加入开机自启动:
使用 chkconfig | grep crond 看在2 3 4 5级别是不是on
crontab默认就是开机启动的,普通用户要有sudo的权限才能设置开机启动。

二、执行定时任务
编辑 crontab :
crontab -e
2.1 crontab 命令格式
基本格式 :
        *  command
分 时 日 月 周 命令
2.2 crontab各参数说明
-e : 执行文字编辑器来编辑crontab,内定的文字编辑器是VI

00 00 * /usr/bin/php /xxx/Timer.php 每天凌晨执行PHP脚本
设置后:crontab: installing new crontab

切记:一定要写对/usr/bin/php 路径,可以用which php 查看

-r : 删除目前的crontab

-l : 列出目前的crontab(查看专用)

-i : 会和-r 配合使用,在删除当前的crontab时询问,输入y 则删除

注意:crontab是分用户的,以谁登录就会编辑到谁的crontab。

2.3 crontab特殊的符号

""代表所有的取值范围内的数字。特别要注意哦!
"/"代表每的意思,如"
/5"表示每5个单位
"-"代表从某个数字到某个数字
","分散的数字

crontab文件的使用示例:
30 21 * * * 表示每晚的21:30
45 4 1,10,22 * * 表示每月1、10、22日的4 : 45
10 1 * * 6,0 表示每周六、周日的1 : 10
0,30 18-23 * * * 表示在每天18 : 00至23 : 00之间每隔30分钟
0 23 * * 6 表示每星期六的11 : 00 pm

  • */1 * * * 每一小时
  • 23-7/1 * * * 晚上11点到早上7点之间,每隔一小时
  • 8,13 * * 1-5 从周一到周五的上午8点和下午1点
    0 11 4 * mon-wed 每月的4号与每周一到周三的11点
    0 4 1 jan * 一月一号的4点

三、crontab定时任务不执排查
排查原因步骤如下:
首先,确认服务器是否开启定时任务计划服务,只有root用户才能对crond服务进行开启和关闭
[root@mimvp-bj script]# service crond status
crond is stopped
[root@mimvp-bj script]# service crond start
Starting crond: [ OK ]
[root@mimvp-bj script]# service crond status
crond (pid 24577) is running…` </pre>

请确保crond状态为 is running…
如果crond状态为 crond is stopped ,则定时任务服务不会生效故无法执行
查看动态日志:
tail -f /var/log/cron` 例如:
00 19 * * * /usr/bin/curl http://www.ddd.com/index.php/Api/Message/classNotice

晚上19:00发送短信(已添加)
*/20 * * * * /usr/bin/curl http://www.aaa.com.cn/index.php/Api/Message/hfHandle
每20分钟运行一次待回复超时处理(已添加)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容