1,作用:
定时自动完成特定的工作
2,计划任务的分类:
- 一次性的计划任务
例如:下周三对系统的重要文件备份一次
- 周期性重复计划任务
例如:每天晚上
12
:
00
备份一次 ,
一次性的任务计划:
- at
- batch
周期性计划任务
- crontab
- anacron
3,at一次性任务计划
选项:
- -q:指定任务计划的队列编号
- -l:显示尚未执行的计划任务(等同于命令atq)
- -d num:删除指定编号的计划任务(等同于命名atrm)
- -c num:显示指定编号的计划任务的具体的命令
- -f file time:从文件中读取要执行的操作
-l
的选项举例
5 Fri Jun 7 12:00:00 2024 a root8 Fri Jun 7 12:00:00 2024 a root编号 计划任务的执行时间 队列编号 发起计划任务的用户
-f
的举例:
从 9.txt 中读取命令第一步:创建9.txttouch 9.txtvim 9.txtlstouch 1.txtpwd
第二步:读取 9.txt 中的命令( 12 : 00 执行)
4,at计划任务中时间的表示方式:
HH:MM
例子:
12
:
00
这里表示的是下一个
12
:
00
特殊方式:
now +5 minutes 5
分钟之后执行这个计划任务
now +3 days 3天后的现在时间执行这个计划任务
now +3 weeks 3周后的现在时间执行这个计划任务
am
4am +3weeks 3周后的早上4点执行这个计划任务
12
:
00 +1 day 1天后12点执行这个计划任务
例子
:
在一分钟后给另一个终端发送信息
“hello”
at 1 minutes
/etc/con.deny
黑名单文件(文件中出现的用户不能创建计划任务)
5,周期任务计划
crontab
作用:实现周期重复的计划任务
服务:
crond
启动
crontab
的服务
service crond startchkconfig crond on 自动启动
例:
* * * * * touch `date \+\%F`.log
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` 在任务计划中特殊符号需要进行转义
理解:
30 3,12 * * * 每天3:30,12:30 执行这个命令30 */6 * * * 每6个小时的半点执行这个命令30 8-12/2 * * * 每天8:30到12:30 每两个小时执行这个命令45 4 1,10,22 * * 每个月的1日,10日,22日4:45执行这个命令30 21 * * * 每天21:30执行这个命令0,30 18-23 */7 1-6 * 1到6月每7天18到23点整点与半点执行这个命令