1.单一执行的例行性工作at
1.1at命令的工作过程
- /etc/at.allow,写在该文件的人可以使用at命令
- /etc/at.deny,黑名单
- 两个文件如果都不存在,只有root能使用
#at工作调度对应的系统服务
[root@localhost ~]# systemctl status atd
#at的工作文件存放目录
[root@localhost ~]# ll /var/spool/at
#at工作的日志文件
[root@localhost ~]# ll /var/log/cron
1.2 at命令
命令格式:at [参数] [时间]
参数 | 功能 |
---|---|
-m | 当任务完成之后,即使没有标准输出,将给用户发送邮件 |
-l | atq的别名,可列出目前系统上面的所有该用户的at调度 |
-d | atrm的别名,可以取消一个在at调度中的工作 |
-v | 使用较明显的时间格式,列出at调度中的任务列表 |
-c | 可以列出后面接的该项工作的实际命令内容(脚本) |
-f | 从文件中读取作作业 |
时间格式:
- HH:MM 在今天的HH小时MM分钟执行,如果今天的这个时间点已经过了,则明
天执行 - HH:MM YYYY-MM-DD 强制规定在某年某月的某一天的特殊时刻进行该工作
now + 2 minutes 从现在开始几分钟minutes, hours, days, or weeks
实验:指定在2023/08/26 09:00将时间写入testmail.txt文件中
2.循环执行的例行性工作crond
2.1 crontab的工作过程
- /etc/cron.allow,写在该文件的人可以使用at命令
- /etc/cron.deny,黑名单
- 两个文件如果都不存在,只有root能使用
#crontab工作调度对应的系统服务
[root@localhost ~]# systemctl status crond
#crontab工作的日志文件
[root@localhost ~]# ll /var/log/cron
#用户定义计划任务的文件所在目录
[root@localhost ~]# ll /var/spool/cron/
2.2 crontab命令
[root@localhost ~]# crontab --help
crontab计划任务的时间格式:
分 | 时 | 日 | 月 | 周 |
---|---|---|---|---|
0-59 | 0-23 | 1-31 | 1-12 | 0-7 |
crontab计划任务的时间格式中的特殊符号:
特殊字符 | 含义 |
---|---|
* | 代表任何时刻 |
, | 代表分隔时段 |
- 0-59 | 代表一段时间范围 |
/数字 | 指定时间的间隔频率,例如每 3 分钟进行一次,*/3 |
- 注:%在crontab里面有特殊含义,如果有命令里面需要使用%,需要使用\转义。
2.3系统的计划任务
[root@localhost ~]# cat /etc/crontab
当需要同一时间执行多个脚本时,可以将这多个脚本放在一个目录下,然后使用run-parts来执行。
run-parts:该命令可将后面接的“目录”内的所有文件找出来执行。
可唤醒停机期间的工作任务
- anacron 可以处理关机状态时未执行的计划任务,anacron不能指定何时执行某项任务,而是以天为单位或是在开机后立刻进入anacron的操作(
/etc/anacrontab
)。它会去检测停机期间应该进行但是并没有进行的crontab任务,并将该任务执行一遍,然后anacron就会自动停止了
实验:指定在每天凌晨4:00将该时间点之前的系统日志信息备份到个目录下(/var/log/messages ),备份后日志文件名显示格式logfileYY-MM-DD HH-MM