一 Crontab 简介
1.Crontab概念(计划任务:定期执行命令)
Crontab 用于设置周期性被执行的任务工具
Cron Job 被周期性执行的任务
Cron Table 周期性执行的任务列表
二 Crontab实践
1.Crontab安装
chkconfig --list | grep crond 查看cron是否安装
service crond retart 重启crond
chkconfig --list | grep crond 查看cron是否安装
service crond retart 重启crond
yum安装crontab
yum install vixie-cron
yum install vixie-cron
yum install crontabs
2.用户级设定定时任务
1.访问控制
/etc/cron.deny 黑名单
2.crontab 用户定时任务管理
"-l" 列出(当前)用户的计划任务
"-e" 编辑(当前)用户的计划任务
"-r" 删除(当前)用户的计划任务
"-u user" 指定用户
命令添加格式
*(分钟) *(小时) *(日期) *(月份) *(星期) command
"*"表示任何时候都匹配
"A"代替"*"表示A时执行
"A,B,C"代替"*"表示A或B或C时执行
eg: 01,2,3 * * * 每天1,2,3点执行
"A-B"代替"*"表示A到B之间执行
eg: 0 1-10 * * * 每天1-10点整点执行 (注意:如果 分钟为* 则1-10点每分钟都执行 )
"*/A"代替"*"表示每A时执行eg: */1 * * * * command 每分钟执行
3.系统设定定时任务
1.
/etc/crontab
全局(系统)配置文件
可添加定时任务
(配置时命令格式要加执行用户)
2./etc/cron.daily/ /etc/cron.weekly/ /etc/monthly/ 定时任务复制到对应目录下 (由anacron控制)
4.anacron系统服务
1.anacron简介
anacron用来保证系统关机错过的定时任务可以在系统开机之后再执行
2.anacron检测周期
1.anacron会使用一天,七天,一个月作为检测周期
2.
/var/spool/anacron/cron.{daily,weekly,monthly}
记录上次执行cron时间
和当前时间比较,若两时间差值超过anacron对应时间差值,证明cron任务没正常执行,则执行按照anacron配置文件规则执行
3.anacron配置文件
vi /etc/anacrontab
-RANDOM_DELAY=45 最大随机显示
-START_HOURS_RANGE=2-22 anacron执行时间范围2:00-22:00
天数 强制延时(分) 工作名称 实际执行命令(run-parts脚本执行文件)
4.Crontab日志
/var/log/cron cron所有日志信息(tail -f file 动态显示日志更新)
5.Crontab注意
1.环境变量不能直接在cron调用
使用环境变量方法
1.执行脚本时,自行定义环境变量
2.source file 生效环境变量所在配置文件
使用环境变量方法
1.执行脚本时,自行定义环境变量
2.source file 生效环境变量所在配置文件
2.
日期和星期同时出现数关系是或 单独出现一个数时和*时 *号忽略 其他关系是与
eg: 0 0 1-7 1 0 command 不是1-7号中的礼拜天执行 是1月 1-7号 且 礼拜天 执行
eg: 0 1 1-7 1* test `date +\%w` -eq 0 && command1月的第一个星期日1时执行
eg: 0 0 1-7 1 0 command 不是1-7号中的礼拜天执行 是1月 1-7号 且 礼拜天 执行
eg: 0 1 1-7 1* test `date +\%w` -eq 0 && command1月的第一个星期日1时执行
3."* * * * * sleep 30s; cammod"
默认命令执行是在最小单位分钟的第一秒,
可用系统延时配合来实现非第一秒执行 也用此来实现一分钟多次执行