Linux的例行性工作

linux 例行性工作: 1、单一执行的例行性工作:仅处理执行一次就结束了,at-> atd 2、循环执行的例行性工作:每隔一定的周期就需要执行一次,crontab

要使用单一工作调度时,linux 上面需要有负责这个调度的服务 atd。

单一执行的例行性工作

(1.)我们 使用 at 命令来生成所要运行的工作,并将这个工作以文本方式写入 /var/spool/at/目录内,该工作便能等待 atd 这个服务的取用与执行了。

为了安全问题,不是所有人都可以进行 at 工作调度。我们可以利用 /etc/at.allow 和/etc/at.deny 这两个文件来进行 at 的使用限制。

at 的实际 工作过程如下:

先寻找/etc/at.allow 这个文件,写在这个文件的用户才能使用 at;如果 /etc/at.allow 不存在,就寻找/etc/at.deny 这个文件,写在该文件的用户不 能使用 at;如果两个文件都不存在,那么只有 root 可以使用 at 命令

在 rhel 里面,由于假设系统上的所有用户都是可信任的,因此系统会保留 一个空的/etc/at.deny 文件,意思是允许所有人使用 at 命令,如果你想设 置拒绝某人使用 at 命令,你可将该用户写入/etc/at.deny(格式为一行代 表一个用户)

at [-mldv] TIME

-m:当 at 的工作完成后,即使没有输出信息,以 email 通知用户该工已完成

-l:at -l 相当于 atq,列出目前系统上面的所有该用户的 at 调度

-d:at -d 相当于 atrm,可以取消一个在 at 调度中的工作

-v:可以使用较明显的时间格式列出 at 调度中的任务列表

-c:可以列出后面接的该项工作的实际命令内容

-f:从文件中读取作

循环执行的例行性工作:

(1.)循环执行的例行性工作调度是由 crond 这个系统服务来控制的。同样,我们也 可以限制使用 crontab 的用户账号。

/etc/cron.allow 将可以使用 crontab 的账号写入其中,若不在该文件内的用户 则不可使用 crontab。

/etc/cron.deny 将不可以使用 crontab 的账号写入其中,若不在该文件内的用 户则可使用 crontab。

当用户使用 crontab 新建工作调度之后,该项工作就会被记录到 /var/spool/cron/里面,并且是以账号来判别的。cron 执行的每一项工作都会被 记录到/var/log/cron 这个日志文件中。

crontab [-u user] [-l | -r | -e]

-u:只有 root 才能进行这个任务,帮某个用户新建/删除 crontab

-e:编辑 crontab 的工作内容

-l:查阅 crontab 的工作内容

-r:删除所有的 crontab 的工作内容

文件格式为:每一行为一个工作,每项工作具有六个字段。

代表意义 分钟 小时 日期 月份 命令
数字范围 0-59 0-23 1-31 1-12 0-7 执行的命令

                    0 和 7 都代表周天

特殊字符 含义
*         代表任何时刻
' 代表分隔时段
, 代表一段时间范围
/数字 指定时间的间隔频率,例如每 3 分钟进行一次,*/3

1.使用at配置5小时后,将this is a at task 写入 root中的at_test中

at> at now +5 hours
at> "This is a at task" > /root/at_test
at> 
job 2 at Thu Dec  9 11:54:00 2021

2.使用crontab配置,每周六,周日9点,14点,提醒我上rhce课,写入root的家目录中的cron_tes文件中

[root@localhost ~]# crontab -e
0 9,14 * * 6,7 echo "提醒我上rhce课" >> /root/cron_test

你可能感兴趣的:(linux,运维,服务器)