16单元 —— 计划任务 (crontab)
Linux 计划任务的种类: at 、 cron
- at :突发性的,可以处理仅只执行一次就结束的命令
- crontab:例行性的,这个命令所设置的任务将会循环的一直执行下去,可循环的时间分为分钟、小时、每周、每月或每年等
仅执行一次的计划任务 —— at
atd 的启动
- systemctl restart atd # 重启 atd 服务 (执行at 命令,必须要有 atd 服务支持)
- systemctl enable atd # 开启启动 atd 服务
at 的运行方式
- /etc/at.allow 文件,写在这个文件中的用户才能使用 at ,没有在这个文件中的用户则不能使用 at (即使没有写在 at.deny 当中)
- 如果 /etc/at.allow 文件不存在,就查找 /etc/at.deny 文件,写在这个文件中的用户则不能使用 at
- 如果两个文件都不存在,那么只有 root 用户可以使用 at 命令
at 命令
at [-mldv] TIME
- -m , 当 at的任务执行完毕,即使没有输出信息,也发email 通知使用者任务已完成
- -l, 相当于 atq ,列出目前系统所有使用者的 at 计划
- -d, 相当于 atrm ,可以取消一个在 at 的计划任务
- -v, 使用较明显的时间格式列出 at 计划任务列表
at -c 任务码 ,列出任务码代表的计划任务实际命令内容
at -r 任务码 ,删除任务
at [now+...] ,指定延迟时间执行任务
循环执行的计划任务 —— crontab
crontab 的用户账号控制管理
- /etc/cron.allow , 可以使用 crontab 的账户 (cron.allow 更优先)
- /etc/cron.deny ,不可以使用 crontab 的账户
crontab 的用户任务记录
- /var/spool/cron/用户/
crontab 命令
crontab [ -u username ] [ -l | -e | -r ]
- -u, 只有 root 用户才可以执行这个任务
- -e, 编辑 crontab 任务内容
- -l, 查看 crontab 任务内容
- -r , 删除所有的 crontab 任务内容
例:
- crontab -e # 以当前用户身份 root 编辑 crontab任务
0 12 * * * root rm -fr /root/Desktop/* # 每天 12:00 清空桌面
分(0~59) 时(0~23) 日(1~31) 月(1~12) 周 (0~7) <======命令串======>
系统的配置文件:/etc/cron.d/*
系统中临时文件管理方式
- /usr/lib/tmfiles.d/ # 系统临时文件 存储目录