RHCE第一次笔记
at:单一执行的例行性工作:仅处理执行一次就结束了
工作原理
提供这份单一例行工作的服务叫atd,使用at命令来进行部署
先确认权限:/etc/at.deny和/etc/at.allow
at.allow:允许操作的列表(用户)
at.deny:拒绝操作的列表(用户)
at命令去执行的时候:先判定是否将具备去权限,先去找 at.allow 这个文件,如果有这个文件,相和歌文件中所写的用户可以去执行at命令。如果这个文件(at.allow)不存在,那么去找at.deny,at.deny定义哪些用户是不能执行的。如果是空文件哪意味着所有人都具备执行权限。
执行at命令,新建任务时,任务被记录在/var/spool/at目录下
at命令操作
命令格式:at [参数] [时间]
参数:
-m 当任务完成之后,即使没有标准输出,将给用户发送邮件
mail -> 邮件
-l atq 的别名,可列出目前系统上面的所有该用户的at调度、
list:列出任务
-d atrm 的别名,可以取消一个在at调度中的工作
delete:删除任务
-v 使用较明显的时间格式,列出at调度中的任务列表
-c 可以列出后面接的该项工作的实际命令内容
content:实际命令内容
-f 从文件中读取作作业
file:将任务写入到文件,使用-f去读取
参数:一般都是时间
时间的表达形式:
HH:MM 在今天的HH小时MM分钟执行,如果今天的这个时间点已经过了,则明天执行
HH:MM YYYY-MM-DD 强制规定在某年某月的某一天的特殊时刻进行该工作
now + count time-units : now + 2 minutes 从现在开始几分钟minutes, hours, days, or weeks
实际执行的内容存储目录:/var/spool/at
使用at -c 任务编号 或者cat /var/spool/at/目录下的文件
注意:该文件在任务完成之后消失
cron:循环执行的例行功能
首先crond这个服务提供的
crontab命令用来创建循环例行工作
和at相同都要去先确认权限
命令
crontab [选项][参数]
crontab命令
选项:
-u:user只有root用户有权限为别的用户来创建任务
普通用户智能为自己创建任务
-l:列出cron任务
-e:edit:编辑,就可以有增加、删除、修改的功能
-r:全部删除
-i:和-r选项一起使用,在删除功能时给确认提示:即是否要删除:y/n
crontab创建一个任务:即编辑一个文件:cron table
问题:应该在文件中写入什么内容
crontab -e :默认去帮当前登陆的用户创建任务
写入文件的内容是有一定格式要求的:
六个字段:字段间用空格分隔
5个时间字段(规定执行的周期)+1个command字段(任务)
时间字段:
第一个字段:分钟 0-59
第二个字段:小时 0-23
第三个字段:月中日 0-31
第四个字段:月份 0-12
第五个字段:星期:0-7 0和7都表示星期天
command字段:真正的任务
特殊符号
*:代表所有
-:代表是连续。例如:1-5,表示1到5
,:如果某一个字段有多个值那用都好来分割1-5另一种表现形式1,2,3,4,5
/:代表频率
vim /etc/cron
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
本文件有七个字段
前五个字段:时间字段
用户字段:以哪个yoghurt去执行
command字段:任务
另一种方式:如果一次要执行多个任务:run-parts的指令
run-parts后跟的是一个目录:目录可以存放多个脚本文件对应多个任务;
使用场景:
at:就单一例行工作:在维埃某一个时间点只执行一次的情况
cron:循环周期的去执行,不仅限于一次
cron是重点,工作中使用较多
备份任务:一般是每天系统最不繁忙的时间去执行
检测任务:检测某些任务的可用性,或者磁盘以及内存使用率
如果服务不可以用,或者磁盘以及呢寄存使用超过阈值,会提供警告给管理员