day16预习笔记
第十三章 Linux系统定时任务Cron(d)服务的应用与实践
什么是Cron(d) ?
Cron是Linux系统中以后台进程模式周期性执行命令或指定程序任务的服务软件。(默认每分钟检查一次) 检查系统中是否需要执行的任务工作计划。如果有,便会根据其预先设定的定时任务规则自动执行该定时任务工作。
为什么要使用Crond定时任务?
因为Cron工具很好地帮我们解决了需要周期性自动备份的运维工作。
Linux系统下定时任务软件:
at:定时任务软件(依赖于atd服务)适合仅执行一次就结束的调度任务工作。
Cron定时任务软件依赖于crond服务
anacron定时任务软件主要是为非7x24小时开机的服务器准备的。
Linux系统定时任务Crond
在Linux系统中,Cron是定时任务的软件名,Crond是服务的进程名,而crontab命令是用来设置定时任务规则的配置命令。
Cron定时任务分为两种:
1、用户定时任务计划
2、系统定时任务计划
Crond服务除了执行用户定时任务计划以外,还会周期性的自动执行和操作系统相关的定时任务工作,例如轮询系统日志,备份系统数据,清理系统缓存等,
crondtab的参数:
-l list 查看定时任务内容
-e edit 编辑定时任务内容
-i 删除定时任务内容,删除前会提示确定
-r 删除定时任务内容
-u user 指定使用的用户执行任务
定时任务软件相关文件及路径说明
/etc/cron.deny 该文件中所列用户不允许使用crontab命令,
/etc/cron.allow 该文件中所列用户允许使用crontab命令,优先于/etc/cron.devy
/var/spool/cron/ 所有用户的Cron配置文件默认都存放在此目录中,文件 名以用户名命名。
用户定时任务编写基本格式如下:
01 * * * * cmd
02 4 * * * cmd
用户定时任务编写语法中时间段的含义:
段 含义 取值范围(整数)
第一段 代表分钟 00~59(00也可以是0)
第二段 代表小时 00~23
第三段 代表日(天) 01~31
第四段 代表月份 01~12
第五段 代表星期 (周几) 0~7(0和7都代表星期如)
时间记忆口诀:分时日月周。
取值范围记忆:正常日期时间范围。
用户定时任务中特殊符号的含义:
* *号表示任意时间,实际上就是“每“的意思。
- 减号,表示分隔符,表示一个时间范围、区间段。
, 逗号,表示分隔时段的意思。
/n n代表数字,即“每隔n单位时间”。
生产环境下的定时cron书写要领
1、为定时任务规则加必要的注释。
2、所有的定时任务尽量都以脚本的形式执行。
3、在执行的Shell脚本前加上/bin/sh
4、定时任务中命令或脚本的结尾加>/dev/null2>&1
5、在指定用户下执行相关定时任务。
6、在生产任务计划程序中不要随意打印输出信息
7、定时任务执行的脚本要存放到规范路径下。
8、 配置定时任务要规范操作过程、减少出错。
9、定时任务脚本中程序命令及路径尽量用全路径。
10、时间变量%号要用反斜线转义。
11、若脚本中调用了系统环境变量,要重新定时。
调试Cron定时任务的技巧总结:
1、增大执行任务频率调试任务
2、调制系统时间调试任务(不能用于生产环境)
3、通过脚本日志输出调试定时任务
4、通过Crond定时任务服务日志调试定时任务