作用:定时自动完成特定的工作
1. 计划任务的分类
- 一次性的计划任务
例:下周三对系统的重要文件备份一次
- 周期性重复计划任务
例:每天晚上12:00备份一次
2. 一次性的任务计划
at
bath
3. 周期性计划任务
crontab
anacron
4. at一次性任务计划
at 时间
ctrl+d 保存退出
选项:
-q 指定任务计划的队列编号
-l 显示尚未执行的计划任务(等同于命令atq)
-d num 删除指定编号的计划任务(等同于atrm)
-c num 显示制定编号的计划任务的具体的命令
-f file time 从文件中读取要执行的操作
4.1 -l 的选项举例
5 Fri Jun 7 12:00:00 2024 a root
8 Fri Jun 7 12:00:00 2024 a root
编号 计划任务的执行时间 队列编号 发起计划任务的用户
4.2 -f的选项举例
从9.txt中读取命令
第一步:创建9.txt
touch 9.txt
vim 9.txt
ls
touch 1.txt
pwd
第二步:读取9.txt中的命令(12:00执行)
at -f 9.txt 12:00
5. at计划任务中时间的表示方式
HH:MM
例:12:00 这里表示的是下一个12:00
6. 特殊方式
- now +5 minutes 5分钟后执行这个计划任务
- now +3 days 3天后的现在时间执行这个计划任务
- now +3 weeks 3周后的现在时间执行这个计划任务
- am 上午
- pm 下午
- 4am +3weeks 3周后的早上4:00执行这个计划任务
- 12:00 +1day
例:在一分钟后给另一个终端发送信息"hello"
at 1 minutes
7. 黑名单文件(文件中出现的用户不能创建计划任务)
/etc/cron.deny
8. 周期性任务计划
8.1 crontab
作用:实现周期重复的计划任务
服务:crond
启动crontab的服务
service crond start
chkconfig crond on 自动启动
例:
* * * * * touch `date\+\%F`.log
8.2 crontab的时间表示格式
1)分钟:0-59任意数字
2)小时:0-23任意数字
3)天:1-31任意数字
4)月:1-12任意数字
5)周:0-7任意数字
6)*:表示任何时间 例:每天的7:30就是 30 7 * * *
7)/n:表示每n个单位的时间 例:每隔10分钟 */10 * * * *
8)-:表示一个连续的范围 例:每天的7:30,8:30,9:30 30 07-09 * * *
9),:表示离散的时间点 例:每天的7:30,10:30,14:30 30 07,10,14 * * *
选项:
- -e 执行、修改任务计划(本质上就是用vi修改/var/spool/cron/username)
- -l 显示用户的计划任务列表
- -u username 查看指定用户的计划任务(结合-l使用)
- -r 删除当前用户的全部计划任务
例:每分钟创建一个以完整的"年月日.log"命名的文件
*/1 * * * * touch `date\+\%F`.log 在任务计划中特殊符号需要进行转义