一次性计划任务
−在预先指定的日期/时间执行,只执行一次
−系统服务atd、配置工具at
周期性计划任务
−按预先指定的时间点/间隔频率执行,反复执行多次
−系统服务crond、配置工具crontab
默认情况下,任何用户都可以安排各自的任务
但在必要时,管理员可以启用授权控制
−at 任务:/etc/at.allow、/etc/at.deny
−cron任务:/etc/cron.allow、/etc/cron.deny
- [root@hadoop ~]# ls /etc/{at,cron}*.{allow,deny}
- ls: cannot access /etc/at*.allow: No such file or directory
- ls: cannot access /etc/cron*.allow: No such file or directory
- /etc/at.deny /etc/cron.deny
1. 如果allow文件存在,则仅允许指定的用户
2. 否则检查deny文件,除指定用户外其余都允许
3. 如果两个文件都不存在,则只允许root使用
atd服务相关
−需要启用atd服务,一次性计划任务才会生效
−任务存放位置:/var/spool/at/用户名
配置at任务
−用法:at [HH:MM] [yyyy-mm-dd]
- [root@hadoop ~]# service atd restart
- Stopping atd: [ OK ]
- Starting atd: [ OK ]
- [root@hadoop ~]# at 19:37 2202-08-15 //按Ctrl+d键提交计划
任务需求
−计划于当前晚上21:30 自动重启系统
[root@hadoop ~]# at 21:30 //定于21:30重启系统
任务需求
−查询尚未执行的at 一次性计划任务
- [root@hadoop ~]# atq //列出at任务队列
- [root@hadoop ~]# at -c 2 //查询任务2详情(末尾)
-
任务需求
−删除指定的at 一次性计划任务
- [root@hadoop ~]# atrm 2 //删除指定的计划
- [root@hadoop ~]# atq //再次查询,任务已消失
crond服务相关
−需要启用crond 服务,周期性计划任务才会生效
−任务存放位置:/var/spool/cron/用户名
默认的计划任务
−全局配置:/etc/crontab
−系统计划:/etc/cron.*
- [root@hadoop ~]# ls -d /etc/cron*
- /etc/cron.d /etc/cron.daily /etc/cron.deny
参考全局配置/etc/crontab
−分钟小时日期月份星期可执行语句


编辑周期性计划任务
−crontab-e [-u 用户名]
查看周期性计划任务
−crontab-l [-u 用户名]
删除周期性计划任务
−crontab-r [-u 用户名]
任务需求
−每天早上07:30 开启sshd服务
−每天晚上23:30 关闭sshd服务

适合不需要24小时持续运行的主机
−任务周期:每小时检查一次,最近x天以内的任务
−由crond服务调度检查,执行被错过的任务操作

任务记录文件
−位于/var/spool/anacron/任务名称,其中记录了此任务最近一次被执行的日期,以判断是否过期−比如:对于每周的任务,如果记录的日期与当前的日期相差超过7天,则需要补做
- [root@hadoop ~]# cat /var/spool/anacron/cron.weekly
- 20220426
任务需求
−每天执行:备份/home 目录为/opt/home.tgz
−如果错过了,则延迟3分钟后补做

自动测试:由crond服务每小时检查一次
手动测试:anacron-n
- [root@hadoop ~]# anacron -n //手动检查anacron任务
- [root@hadoop ~]# cat /var/spool/anacron/anatest //确认执行日期
- [root@hadoop ~]# ls -lh /opt/abc.txt //确认任务结果