计划任务基本概述
- 什么是crond?
crond就是计划任务,表示定时去完成某个任务。 - 为什么要使用crond?
crond主要做一些周期性的任务。
1)定期备份重要的文件或数据。
2)促销活动
3)检测超时订单
4)每隔5分钟上各个电商平台刷取订单信息写入自己公司的系统中 - 计划任务主要分为以下两种情况
1)系统级别的定时任务:临时文件清理、系统信息采集、日志切割
2)用户级别的定时任务:定时备份数据、同步时间、订单超时自动取消、按时间段统计信息等。
计划任务时间管理
计划任务书写格式:
* * * * * 要执行的任务。
这五个*,按照顺序分别表示分时日月周。
计划任务表示时间的特殊符号:
* * * * * ls # 表示每分钟执行一次ls
* 5-7 * * * ls # 表示每天5-7点的时间段中,每分钟执行一次ls
* * * * 1,3,5 ls # 表示每个周一、周三、周五每分钟执行一次ls
*/5 * * * * ls # 表示每5分钟执行一次ls
如果日和周同时存在,那么这二者就是或者的关系,其他都是并且。
配置定时任务
配置定时任务使用的是crontab命令:
-e 编辑定时任务
-l 查看定时任务
-r 删除定时任务
-u 指定其他用户
编辑定时任务示例:
[root@oldboy ~]# crontab -e
# 每5分钟同步一次时间
*/5 * * * * ntpdate time.windows.com &>/dev/null
[root@oldboy ~]# crontab -l
# 每5分钟同步一次时间
*/5 * * * * ntpdate time.windows.com &>/dev/null
如果我们对定时任务做出了误操作。
我们可以这样进行恢复:
-
拿到所有执行过的任务。
-
根据执行的任务。去过滤,然后找到他的执行时间和周期。
不同的用户的定时任务的文件不是同一个文件。
如果我们不想让某个用户能够使用定时任务,我们就需要把不想让使用定时任务的用户名写入/etc/cron.deny文件中即可。
在我们写脚本或者定时任务时,如果用到命令,最好使用绝对路径来调用命令,防止出错。
定时任务的调试
crond调试
- 调整任务为每分钟执行一次,查看没有问题之后再调整执行频率为需要的频率。
- 最好把执行结果放到指定的日志文件中去,观察日志内容是否正常。
- 命令使用绝对路径,防止故障发生。
- 通过查看/var/log/cron日志,可以检查我们执行的结果。
crond编写
- 脚本文件最好写到统一的文件中去
- 脚本内容复制执行成功的命令,防止出错
- 脚本的输出信息最好写到/dev/null中,减少输出信息
- 执行脚本成功以后,复制执行脚本的命令,便于写入cron中
- 尽可能的要加上必要的注释信息