RHCE: 例行性工作 at 与 cron
一.at --- 单一执行的例行性工作
只处理一次就结束
at重要相关文件
/etc/at.allow # 白名单
/etc/at.deny # 黑名单# 注: 两者二选一,使用白名单,默认拒绝,使用黑名单,默认允许/var/spool/at # at工作文件存放的目录
/var/spool/cron # 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
命令格式: at [参数] [时间]
#定义三分钟之后显示hello
[root@server ~] at now + 3 minutes
二.crontab --- 循环执行的例行性工作
循环执行的例行性工作:每隔一定的周期就需要执行一次
crontab相关文件
/etc/cron.allow # 写在该文件的人可以使用crontab命令
/etc/cron.deny # 黑名单 #两个文件如果都不存在,只有root能使用# crontab工作调度对应的系统服务
[root@localhost ~] systemctl status crond #crontab# 工作的日志文件
[root@localhost ~] ll /var/log/cron# 用户定义计划任务的文件所在目录
[root@localhost ~] ll /var/spool/cron/
crontab命令详解
-u 定义用户
-e 编辑用户的 crontab
-l 列出用户的 crontab
-r 删除用户的 crontab
-i 在删除之前提示
-n 设置集群中的主机以运行用户的 crontabs
-c 获取集群中的主机以运行用户的 crontabs
-s SELinux 上下文
-V 打印版本并退出
-x 启用调试
crontab计划任务的时间格式
口诀: 分时日月周
crontab计划任务的时间格式中的特殊符号
注:%在crontab里面有特殊含义,如果有命令里面需要使用%,需要使用\转义。
#每天早上9点整说good morning
[root@server ~]# crontab -e 0 9 * * * wall "good morning"
注: :wall命令用于向系统当前所有打开的终端上输出信息, 通过wall命令可将信息发送给每位同意接收公众信息的终端机用户,若不给予其信息内容,则wall 命令会从标准输入设备读取数据,然后再把所得到的数据传送给所有终端机用户。
系统的计划任务
[root@localhost ~]# vim /etc/crontab
当需要同一时间执行多个脚本时,可以将这多个脚本放在一个目录下
然后使用run-parts来执 行。 run-parts:该命令可将后面接的“目录”内的所有文件找出来执行。
例如执行myscripts下的所有脚本(每分钟执行一次)
* * * * * run-parts /usr/local/bin/myscripts