RHCE例行性工作
一.单一执行的例行性工作(仅处理执行一次就结束)
1.1.at命令的工作过程
/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 | 使用较为明显的时间格式,列chuat调度中的任务列表 |
-c | 可以列出后面接的该项工作的实际命令内容 |
-f | 从文件中读取作业 |
时间格式:
HH:MM | 在今天的HH小时MM分钟执行,如果时间已过则明天执行 |
HH:MM YYYY-MM-DD | 强制规定在某年某月的某一天的特殊时刻进行该工作 |
now + * minutes(时间单位) | 从现在开始的*minutes,hours..... |
二.循环执行的例行性工作(每隔一定周期执行一次)
2.1.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/
2.2crontab命令详解
crontab命令详解
-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
分 | 时 | 日 | 月 | 周 |
0-59 | 0-23 | 1-31 | 1-12 | 0-7 |
特殊字符 | 含义 |
* | 代表任何时刻 |
, | 代表分隔时段 |
- | 代表一段时间范围 |
/数字 | 指定时间的间隔频率,例如*/3 |
注:
%在crontab里面有特殊含义,如果有命令里面需要使用%,需要使用\转义。
wall命令用于向系统当前所有打开的终端上输出信息。 通过wall命令可将信息发送给每位同意接收公众信息的终端机用户,若不给予其信息内容,则wall 命令会从标准输入设备读取数据,然后再把所得到的数据传送给所有终端机用户。
2.3系统的计划任务
[root@localhost ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR
sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
当需要同一时间执行多个脚本时,将这多个脚本放在一个目录下,然后使用run-parts来执行。
run-parts:该命令可将后面接的“目录”内的所有文件找出来执行。