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

这篇具有很好参考价值的文章主要介绍了复习之系统定时任务及延迟任务。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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个新文件

复习之系统定时任务及延迟任务,linux,前端,运维

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

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

# at -l : 查看延迟任务

复习之系统定时任务及延迟任务,linux,前端,运维

 # at -c 5 : 查看延迟任务的具体内容复习之系统定时任务及延迟任务,linux,前端,运维

复习之系统定时任务及延迟任务,linux,前端,运维

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

复习之系统定时任务及延迟任务,linux,前端,运维

 2. at 任务的黑白名单

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

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

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

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

复习之系统定时任务及延迟任务,linux,前端,运维

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

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

复习之系统定时任务及延迟任务,linux,前端,运维

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

复习之系统定时任务及延迟任务,linux,前端,运维

 编辑黑名单,将用户westos写进黑名单,发现westos无法执行at任务!!复习之系统定时任务及延迟任务,linux,前端,运维

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

复习之系统定时任务及延迟任务,linux,前端,运维

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

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分钟执行一次!

复习之系统定时任务及延迟任务,linux,前端,运维

(3) crontab 基本命令

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

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

复习之系统定时任务及延迟任务,linux,前端,运维

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

编辑完保存即可!!

复习之系统定时任务及延迟任务,linux,前端,运维

 (4)crontab的黑白名单

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

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

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

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

复习之系统定时任务及延迟任务,linux,前端,运维

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

复习之系统定时任务及延迟任务,linux,前端,运维

将westos用户写进黑名单,发现只有黑名单的westos用户无法使用crontab! 复习之系统定时任务及延迟任务,linux,前端,运维

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

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

复习之系统定时任务及延迟任务,linux,前端,运维

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

三、邮件系统的管理

1. 处理任务输出

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

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

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

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

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

复习之系统定时任务及延迟任务,linux,前端,运维

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

复习之系统定时任务及延迟任务,linux,前端,运维

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

* * * * *   /bin/date

复习之系统定时任务及延迟任务,linux,前端,运维

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

# mail

 复习之系统定时任务及延迟任务,linux,前端,运维

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

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

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

复习之系统定时任务及延迟任务,linux,前端,运维

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

复习之系统定时任务及延迟任务,linux,前端,运维

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

(2) 修改邮件收件人

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

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

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

复习之系统定时任务及延迟任务,linux,前端,运维

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

改为空,即不发送邮件!

复习之系统定时任务及延迟任务,linux,前端,运维

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

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

复习之系统定时任务及延迟任务,linux,前端,运维

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

复习之系统定时任务及延迟任务,linux,前端,运维

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

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

修改后要重启服务!!

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

复习之系统定时任务及延迟任务,linux,前端,运维

 查看邮件是否执行:

# cat   /var/log/cron

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

复习之系统定时任务及延迟任务,linux,前端,运维

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

(4)重定向任务输出

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

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

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

复习之系统定时任务及延迟任务,linux,前端,运维

 四、系统级cron的设定

1. 基础设定

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

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

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

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

复习之系统定时任务及延迟任务,linux,前端,运维

 自己设定定时任务

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

复习之系统定时任务及延迟任务,linux,前端,运维

 2. 优化临时文件存储

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

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

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

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

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

复习之系统定时任务及延迟任务,linux,前端,运维

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

设定该目录的周期是5s

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

复习之系统定时任务及延迟任务,linux,前端,运维

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

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

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

复习之系统定时任务及延迟任务,linux,前端,运维

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

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

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

复习之系统定时任务及延迟任务,linux,前端,运维

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

复习之系统定时任务及延迟任务,linux,前端,运维

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

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

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

# cd /etc/cron.d

# vim westos

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

复习之系统定时任务及延迟任务,linux,前端,运维

 文章来源地址https://www.toymoban.com/news/detail-566080.html

到了这里,关于复习之系统定时任务及延迟任务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux-系统定时任务cron

    cron是linux系统中以后台进程模式周期性地执行命令或指定程序任务地服务软件。默认安装完linux系统之后,cron服务软件便会启动,服务对应的进程名字为crond。corn服务会定期(默认每分钟检查一次)检查系统中是否有需要执行的任务工作计划。 cron工具对应的crontab命令依赖于

    2024年04月12日
    浏览(30)
  • 如何在linux系统中设置定时任务?

    1. 引入 1.1 在日常开发中,我们经常需要设置一些定时任务。 举个栗子:在进行Java Web开发时,通常我们采用Springboot 框架,我们可以通过 注解+ cron表达式,设置定时任务。 1.2实现方式: 1.在springboot项目启动类上,添加 @EnableScheduling 注解; 2.在需要设置定时任务的方法上,

    2024年02月02日
    浏览(35)
  • 在linux系统中如何设置定时任务

    前言: 在linux日常运维过程中我们常常需要在指定时间段自动停止或启动某个服务我们不可能人为的手动去执行,这时候我们就可以给对应的任务设置一个定时。后面我就可以将周期性的、规则的工作交给定时任务去完成。 **一次性任务:**顾名思义就是该任务只执行一次,

    2024年02月10日
    浏览(43)
  • Linux 系统中查看和停止删除定时任务

    在Linux或类Unix系统中,通常使用crontab命令在指定的时间执行一个shell脚本或者一系列Linux命令,也就是通常所说的定时任务。 crond crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此

    2024年02月09日
    浏览(28)
  • 部署问题集合(二十二)Linux设置定时任务,并设置系统时间

    因为项目中经常用到定时任务,特此总结记录一下 大部分虚拟机创建后就自带定时服务,直接用命令就好 编辑定时任务: crontab -e ,在该文件下添加如下内容 开机自启: @reboot /home/autoRun.sh 定时执行: 0 0 * * * /home/sutoRun.sh (凌晨十二点执行) 时间后也可以接命令 若要在该

    2024年02月11日
    浏览(29)
  • Linux命令-batch命令(在系统不繁忙的时候执行定时任务)

    batch命令 用于在指定时间,当系统不繁忙时执行任务,用法与at相似。 日期时间:指定任务执行的日期时间。

    2024年02月22日
    浏览(33)
  • 【运维】手把手教你在Linux/Windows系统使用Nginx部署多个前端项目【详细操作】

            需求:项目上线需要将前端的前台和后台部署在服务器上提供用户进行使用,部署在不同的服务器直接在服务器安装nginx即可。但是在内网安装还是有点麻烦,因为需要联网,如果是内网可以参考Linux安装Nginx并部署前端项目【内/外网-保姆级教程】_MXin5的博客-CSDN博

    2024年02月08日
    浏览(42)
  • 前端订阅后端推送WebSocket定时任务

            后端定时向前端看板推送数据,每10秒或者30秒推送一次。         HTTP协议是一个应用层协议,它的特点是无状态、无连接和单向的。在HTTP协议中,客户端发起请求,服务器则对请求进行响应。这种请求-响应的模式意味着服务器无法主动向客户端发送消息。   

    2024年04月25日
    浏览(29)
  • 自学前端,你必须要掌握的3种定时任务

    当你看到这篇博客的时候,一定会和狗哥结下不解之缘,因为狗哥的博客里不仅仅有代码,还有很多代码之外的东西,如果你可以看到最底部,看到投票环节,我相信你一定感觉到了,狗哥的真诚,狗哥是都么的,能,胡说八道。 目录  一、无处不在的定时任务 二、setTime

    2024年02月02日
    浏览(34)
  • Crontab(定时任务)使用: Linux-Centos7使用crontab制定定时任务,定时执行某任务

    参考:https://blog.csdn.net/m0_49605975/article/details/120701771 1.用yum命令安装Crontab 2.启动,关闭,重启 3.设置开机启动 1.设置定时任务-进入编辑模式 -和vim操作一至 2.查看定时任务列表 3.添加定时任务 样例: 添加一个定时任务,定时清空某个文件夹里面日志文件的内容 3.1 编写一个清

    2024年02月01日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包