1.计划延迟的用户任务
(1)at 命令:root 及普通用户可以使用此命令创建计划任务。at 软件包包含 atd 守护进程和一组命令(at、atq),atd 守护进程提供 a-z 共26个队列,按字母排序,越靠前的队列优先级越高。
(2)使用 at TIMESPEC 创建作业,TIMESPEC 非常灵活:
- now +5min
- teatime tomorrow(下午 16:00)
- noon +4 days
- 5pm august 3 2021
(3)atq 或 at -l 命令:查看用户的待处理作业。
at -c JOBNUMBER命令:查看此作业编号的详细信息。
at -q g teatime:以交互式方式将作业排入在16:00运行的队列g中。
(4)atrm JOBNUMBER命令:删除此作业编号的计划作业。
(5)wacth atq命令:实时监控延迟作业的队列,执行完后将改作业从队列中删除。
2.计划周期性用户作业
(1)周期性作业:按计划重复运行的作业。crond 守护进程管理周期性作业,读取多个配置文件,crontab 命令编辑配置文件。如果计划任务运行失败,crond 会发送邮件给指定用户。
(2)crontab 命令
crontab -l | 列出当前用户的计划作业 |
crontab -r | 删除当前用户的所有作业 |
crontab -e | 编辑当前用户的作业 |
crontab -u | 超级用户用来管理其他用户的作业 |
(3)crontab 的字段格式是:分钟 小时 日 月 星期 命令
*:始终
x-y:表示范围
x,y:表示列表
*/x:表示x的间隔时间
3.周期性系统作业
(1)周期性系统作业,应始终在 /etc/cron.d 目录下创建自定义 crontab 文件。crontab 系统中还包含需要每小时、每天、每周和每月运行的脚本目录。 为目录中添加可执行的 shell 脚本,分别对应为:/etc/cron.hourly/、/etc/cron.daily/、/etc/cron.weekly/、/etc/ cron.monthly/ 的目录。
(2)/etc/cron.d/0hourly 文件调用 run-parts 命令运行/etc/cron.hourly/* 脚本。/etc/anacrontab 确保重要的作业始终运行。
(3)systemd定时器单元:可以激活另一个不同类型的单元,只要待激活的单元名称与该定时器单元名称相匹配即可。更改 systemd 配置后,使用 systemctl daemon-reload 让 systemd 重新加载配置,接着使用以下systemctl enable --now <unitname>.timer命令激活定时器单元。
4.管理临时文件
(1)使用 Systemd timer 清理临时文件
systemd定时器单元的systemd-tmpfiles-clean.timer 的 systemd timer unit 会定期触发 systemd-tmpfiles-clean.service 来执行 systemd-tmpfiles --clean命令。更改 systemd 配置后,使用 systemctl daemon-reload 让 systemd 重新加载配置,接着使用以下systemctl enable --now systemd-tmpfiles-clean.timer.timer命令激活定时器单元。
(2)手动清理临时文件
运行 systemd-tmpfiles --clean,删除超过一天时间内尚未被访问、更改 或修改的所有文件。