linux中有一个命令可以定期来执行系统任务,比如:执行自检、启动|停止服务、同步时间、curl访问接口等,这就是crond服务
crond属于系统调度进程,有的系统可能init.d目录下没有crond,只有cron,它们是一样的,只是名字不同
crond执行的任务有两种设置方式
1、通过crontab命令设置,crontab命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息。系统管理员可以通过cron.deny 和 cron.allow 这两个文件来禁止或允许
2、通过编辑/etc/crontab文件设置
常用命令
定时任务设置
1. 输入 crontab -e
2. 按下 a 键进入到编辑模式
3. 输入 0 */1 * * * /home/work/start-service.sh
4. 同时按下 ctrl+c 退出编辑模式
5. 按下 shift+: 输入 wq 退出 crontab
vi编辑文件步骤一样
参数说明
定时任务格式
若上文格式混乱,可参考图片
第1列表示分钟1~59,每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”。
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”。
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
实例
注意
1、cron命令不执行排查方法:
⑴ 检查cron有没有运行,如果在运行重启一下cron,让它重新加载配置
⑵ 检查配置文件有没有格式错误
⑶ 检查时区,时间是东8区,设定02:00点执行的命令,实际10:00点执行,这时可以变通下,把时间+8设定为18:00,就可以02:00执行了
2、使用curl访问接口的地址中,不能拼接过多的“&”符号,否则访问失败(此部分属于curl知识,可以直接通过curl命令测试地址是否可行),建议使用nginx的rewrite简化地址,减少错误率。