第一章、系统延迟任务与定时任务
1.延迟任务
在系统中我们的维护工作大多数时在服务器行对闲置时进行
我们需要用延迟任务来解决自动进行的一次性的维护
延迟任务时一次性的,不会重复执行
当延迟任务产生输出后,这些输出会以邮件的形式发送给延迟任务发起者
在RHEL9中默认系统中的所有普通用户都可以发起延时任务
1.1命令:
at 参数 时间
1.2参数
-m 当任务完成之后,即使没有标准输出,将给用户发送邮件
-l atq的别名,可列出目前系统上面的所有该用户的at调度
-d atrm的别名,可以取消一个在at调度中的工作
-v 使用较明显的时间格式,列出at调度中的任务列表
-c 可以列出后面接的该项工作的实际命令内容
-f 从文件中读取作作业
1.3白名单与黑名单
黑名单(at.deny)默认存在,在名单中的用户不能执行at命令,
白名单(at.allow)默认不存在,但是当白名单出现时,黑名单将不会被检测,并且只有在白名单中出现的用户才可以使用at命令
2.定时任务
和延迟任务类似,我们可以用crontab来解决自动进行的周期性的维护
定时任务类似手机闹钟,会重复执行
当定时任务产生输出后,这些输出会以邮件的形式发送给延迟任务发起者
在RHEL9中默认系统中的所有普通用户都可以发起定时任务
2.1周期任务发起方式
2.1.1命令
crontab --u 用户 --e
2.1.2参数
-u:用来设定某个用户的crontab服务此参数一般有root用户来运行。
file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab
-e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
-r:从/var/spool/cron目录中删除某个用户的crontab文件
-i:在删除用户的crontab文件时给确认提示。
crontab 在设定定时任务是会以vi命令打开临时文件在保存时会把内容同步到/var/spool/cron中
2.1.3白名单与黑名单
黑名单(cron.deny)默认存在,在名单中的用户不能执行crontab命令,
白名单(cron.allow)默认不存在,但是当白名单出现时,黑名单将不会被检测,并且只有在白名单中出现的用户才可以使用crontab命令
2.2系统级别的周期任务
crontab目录
我们进入到自定义系统的目录下,建立文件设置命令
我们建立一个/etc/cron.work
mkdir /etc/cron.work
编辑自定义文件
在该文件夹/etc/cron.work/touch.sh下编写任务
提升运行的权限
chmod +x /etc/cron.work/touch.sh
2.3定时邮件
首先下载
dnf install postfix s-nail -y
接着启动
systemctl start postfix
我们设定一分钟后发送邮件
然后我们查看