任务计划;调度性任务
一次性任务计划:
at :设置系统在某一个时间点执行任务,任务结果以邮件形式发送给任务发起者
/etc/at.allow 任务执行白名单,仅允许此文件中的用户执行at
/etc/at.deny 黑名单
at data_time
at >at_command1
at >at_command2
at >ctrl + d 保存退出
时间日期写法:
绝对时间:
HH:MM 具体时间点
DD.MM.YY 天 月 年
YY-MM-DD
MM/DD/YY
相对时间:
at now + 3minutes
at - l 查看系统中at任务列表,相当于atq
-r 删除系统中at任务列表,相当于atrm
-d 如上
-c 列出后续at任务的具体指令内容
systemctl start atd
systemctl enable atd
systemctl status atd
linux设置at任务后,会在/var/spool/at中生成at任务计划的文件,执行顺序按照文件名的排序执行
batch:用法和at相同,但其计划是在CPU空闲时执行,当平均负载小于0.8时执行batch任务
uptime 查看CPU平均负载
周期性任务计划:
系统周期性任务:
日志轮换:logroate
登陆文件分析:logwatch
创建locate数据库:updatedb
创建man帮助信息数据库:
centos 6 makewhatis
centos7 mandb
用户周期性任务
cron 设置周期性任务计划
anacron 当cron 由于某种原因没有执行,ancron重新执行任务
systemctl start cron
systemctl enable cron
systemctl status cron
/etc/cron.allow 白名单
/etc/cron.deny 黑名单
cron相关配置文件:
/etc/crontab cron配置文件
/etc/cron.d 辅助配置文件
/var/spool/cron 用户cron任务计划的配置文件,用户设置完cron任务后,会在/var/spool/cron生成以用户名为名称的cron文件
crontab 设置 查看 删除cron任务计划
- e 编辑cron任务内容
- u 为指定用户
- l 查看cron任务列表
- r 删除所有cron列表
设置cron任务语法
系统设置: 分时日月周 用户 命令
用户设置:分时日月周 命令
周 0 和 7都代表周日
时间的特殊写法:
通配 * 代表任意时间
离散时间段 逗号
连续时间段 中横线(-)
间隔时间段 */n
cron.hourly 由cron工具去执行
cron.daily weekly monthly 由anacron工具去执行
cron设置任务计划时注意事项;
CPU和内存资源集中使用时的问题
取消一些不必要的输出:设置命令时可以重定向输出
时间的检验:设置时间时,周与日月不可并存
安全的检验;借有/var/log/cron的内容查看cron任务计划中是否有非法任务
环境变量:系统命令查找和cron任务命令位置由$PATH变量决定,设置cron任务时,使用命令的绝对路径
anacron 当cron 由于某种原因没有执行,ancron重新执行任务
配置文件 /etc/anacrontab
anacron 语法:
anacron 选项 job
- s 依据时间记录文件判断是否执行
- f 强制执行
- n 立刻执行未执行的任务,不需要延迟
anacron执行流程:
1 由/etc/anacrontab 分析cron.daily天数为1天
2 由 /var/spool/anacron/cron.daily取出最近一次执行anacron时间戳
3 由2 步骤分析出的时间戳和cron任务进行比较,查看哪些cron任务超过1天时间没有执行
4 准备执行指令,根据/etc/anacrontab 的设置,将延时执行
5 延时时间后,执行