复习之系统定时任务及延迟任务

一、延迟任务(一次性的)

1. 延迟任务的设定

  • at  +时间 :具体时间设定延迟任务

设定成功后“ ctrl + d "发起任务," ctrl + c " 取消。

  • at  -l  :查看延迟任务
  • at  -c  1 :查看序号为1 的延迟任务的内容
  • at  -r  1 :取消序号为1 的延迟任务
  • at  now+1min : 设定1分钟后的延迟任务

------------------------------------------------------实验------------------------------------------------------

准备虚拟机aa,打开两个窗口,一个做监控!!

# watch -n 1 ls -l /mnt/ :监控命令

在/mnt/下建立10个新文件

 # at 16:59:在16:50设定延迟任务

at> rm -fr /mnt/* :清空/mnt/的文件
at> <EOT>:发起任务

# at -l : 查看延迟任务

 # at -c 5 : 查看延迟任务的具体内容

 # at  -r 7 :取消延迟任务

 2. at 任务的黑白名单

默认情况下,所有用户都可以执行延迟任务!

  • /etc/at.deny:默认存在,再此文件中出现的用户不能执行at
  • /etc/at.allow:默认不存在,当文件出现,/etc/at.deny失效;只有文件里的用户可以执行at

----------------------------------------------------------------实验-------------------------------------------------------

  • /etc/at.deny:默认存在,
  • /etc/at.allow:默认不存在

# man 5 at.deny :查询文件帮助

发现:如果at.allow文件存在就不再查看deny文件,如果allow文件不存在就查看deny文件!

 默认情况下,所有用户都可以执行at。

 编辑黑名单,将用户westos写进黑名单,发现westos无法执行at任务!!

 建立白名单,白名单一旦建立,黑名单就会失效!只允许白名单内的用户和root用户执行at !!!白名单为空则只允许root用户执行!

二、定时任务的设定(永久的)

1. 用户定时任务的设定

(1)保存路径及系统服务

  • /var/spool/cron/username : 任务保存文件

  • crond.service :系统控制crontab的服务

(2)crontab 时间表示方式

  • * * * * * :分别代表 分钟  小时  天 月 周,此时代表每分钟
  • */2 * * * * :每两分钟
  • */2 09-17 3,5 1 5 :1月的3号和5号,第五周的9点--17点,每隔2分钟执行一次!

(3) crontab 基本命令

  • crontab   -u  root/westos   -e : 编辑root/westos用户的定时任务
  • crontab   -u   root/westos    -l:查看root/westos用户的定时任务
  • crontab   -u    root/westos    -r:删除root/westos用户的定时任务

----------------------------------------------------实验-------------------------------------------------------

编辑定时任务的界面如下:

编辑完保存即可!!

 (4)crontab的黑白名单

crontab的黑白名单与at的黑白名单类似,对root用户和系统级的定时无效!

  • /etc/cron.deny : 黑名单,系统中默认存在,此文件中出现的用户不能执行crontab
  • /etc/cron.allow : 白名单,系统中默认不存在,当文件存在,/etc/cron.deny失效!只有在文件里的用户及root可以执行crontab

----------------------------------------------------------------实验-------------------------------------------------------------

黑名单默认存在,白名单默认不存在!

默认情况下所有用户都可以执行crontab定时任务!

将westos用户写进黑名单,发现只有黑名单的westos用户无法使用crontab!

 创建白名单,将westos用户写进白名单!

白名单建立时,黑名单会失效!因此在白名单的用户westos及root用户才可以使用crontab

 ps:做完实验,一切恢复原样!!!

三、邮件系统的管理

1. 处理任务输出

(1)日志产生自动发送邮件

当日志产生时,系统会自动向执行者发送一封邮件,前提是

  • 安装postfix软件----发送邮件的
  • 安装mail软件-----查看邮件的
  • 开启postfix服务
  • 重新开启crond服务

--------------------------------------------------------------实验----------------------------------

#  dnf install postfix mailx :安装邮件软件

# systemctl enable --now postfix.service:开启postfix服务

此时写入定时任务查看实验效果!!

* * * * *   /bin/date

利用mail命令却发现没有邮件!!

# mail

 

 这是因为crond服务没有时别到postfix,因此重新开启crond服务即可!!

# systemctl restart crond.service:重新开启crond服务

这时用mail进行测试,发现已经有邮件!

或者可以利用# cat /var/log/cron 查看是否有邮件

以上邮件全部发送给root用户,这是可以设置的。

(2) 修改邮件收件人

  • 编辑 /etc/crontab文件  ps:修改完不会立即生效
  • 设置定时任务前添加 MAILTO=' ' ,会立即生效!

-----------------------------------------------实验-----------------------------------------

首先清空邮件,保证实验效果!

 编辑 /etc/crontab文件,修改邮件收件人!

改为空,即不发送邮件!

 此时进行测试,发现root用户仍然会收到邮件!

这是因为该文件系统开机已经读取过,修改不会立即生效!

 设置定时任务前添加 MAILTO=' ' ,会立即生效!

(3) 永久关闭邮件发送功能

  • 编辑  /etc/sysconfig/crond : CRONDARGS=-m off ,关闭邮件发送功能

修改后要重启服务!!

利用mail查看,发现已经没有邮件!

 查看邮件是否执行:

# cat   /var/log/cron

发现已经执行,但是没有发送邮件,说明邮件发送功能关闭成功!

 以上只是屏蔽了邮件,但是任务输出仍然显示在 /var/log/cron 中,如果所有输出都不想显示怎麼办?

(4)重定向任务输出

在编辑定时任务时,直接重定向输出,屏蔽即可!

  • * * * * * /bin/date   &>   /dev/null

ps:测试仍有输出,不知道为什么..........

 四、系统级cron的设定

1. 基础设定

系统及cron的设定只能root用户执行!一般用来管理临时文件!

  • /etc/cron.d :设定目录

-----------------------------------------------------------实验----------------------------------------------

建立脚本放在对应目录,即可设定定时任务!!

 自己设定定时任务

# cd   /etc/cron.d:在该目录下建立脚本

 2. 优化临时文件存储

临时文件是有周期的,如果周期内直接用rm 清理临时文件不合适

因此可以用cron优化临时文件!

(1)临时文件的建立和清理

  • /lib/tmpfiles.d/:临时文件目录
  • systemd-tmpfiles  --create   /lib/tmpfiles.d/westos.conf:临时文件生效
  • systemd-tmpfiles --clean  /lib/tmpfiles.d/westos.conf:清理临时文件

首先进入目录,里面都是临时文件

 自己建立一个临时目录:westos.conf

设定该目录的周期是5s

# vim   /lib/tmpfiles.d/westos.conf

 此时,用#  watch -n 1 ls -lR /mnt/ 进行监控发现目录还没建立,这是因为临时文件没有生效!

# systemd-tmpfiles --create   /lib/tmpfiles.d/westos.conf:使临时文件生效!

此时监控发现该目录已建立!

此时在该目录下建立文件, 建立后清除

# systemd-tmpfiles   --clean   /lib/tmpfiles.d/westos.conf

发现file2 file3 未清除,这是因为文件从建立到清除没有5s,所有暂时不清楚!

 当超过5s后,再次执行清除命令,文件都以清理!

综上,该命令清理临时文件很合适!!因此,可以将该命令与定时任务相结合,就可以优化临时文件存储!

(2) 利用cron优化临时文件存储

将以上清理命令写进cron定时

# cd /etc/cron.d

# vim westos

01 * * * * root systemd-tmpfiles  --clean  /lib/tmpfiles.d/*.conf:每小时清理一次所有的临时文件

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值