单一执行的例行性工作:仅处理执行一次就结束了
#at工作调度对应的系统服务
[root@localhost ~]# systemctl status atd
#at的工作文件存放目录
[root@localhost ~]# ll /var/spool/at
#at工作的日志文件
[root@localhost ~]# ll /var/log/cron
命令格式: 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
示例:定义一分钟之后显示hello
[root@server ~]# at now + 1 minutes
at> wall hello
at> <EOT #按住ctrl+D退出
[root@ssh-server ~]# systemctl status atd #调度对应的系统服务
[root@localhost ~]# ll /var/log/cron #at工作的日志文件
[root@MPF ~]# at -l --查看at任务
9 Thu Nov 23 00:09:00 2023 a root
[root@MPF ~]# atrm 9 --删除任务
循环执行的例行性工作:每隔一定的周期就需要执行一次
#crontab工作调度对应的系统服务
[root@localhost ~]# systemctl status crond
#crontab工作的日志文件
[root@localhost ~]# ll /var/log/cron
#用户定义计划任务的文件所在目录
[root@localhost ~]# ll /var/spool/cron/
[root@localhost ~]# crontab --help
crontab: invalid option -- '-'
crontab: usage error: unrecognized option
Usage:
crontab [options] file
crontab [options]
crontab -n [hostname]
Options:
-u <user> define user
-e edit user's crontab
-l list user's crontab
-r delete user's crontab
-i prompt before deleting
-n <host> set host in cluster to run users' crontabs
-c get host in cluster to run users' crontabs
-s selinux context
-V print version and exit
-x <mask> enable debugging
crontab计划任务的时间格式:
分 | 时 | 日 | 月 | 周 |
---|---|---|---|---|
0-59 | 0-23 | 1-31 | 1-12 | 0-7 |
crontab计划任务的时间格式中的特殊符号:
特殊字符 | 含义 |
---|---|
* | 代表任何时刻 |
, | 代表分隔时段 |
– | 代表一段时间范围数字 |
/数字 | 指定时间的间隔频率,例如每 3 分钟进行一次,*/3 |
注:%在crontab里面有特殊含义,如果有命令里面需要使用%,需要使用\转义。
练习示例见
RHCE–实验1