linux探路

编程入门 行业动态 更新时间:2024-10-11 05:20:54

<a href=https://www.elefans.com/category/jswz/34/1770067.html style=linux探路"/>

linux探路

在linux中有的程序是例行性的,如,只执行一次的任务和循环工作的任务。在正常的项目中,只执行一次的任务可能用的比较少,循环执行的任务可能比较常见,比如在项目中我们工作的进程可能会因为某种原因会导致进程挂掉,不可能手工干预去重启进程,所以这就需要定时任务去查询进程的状态,一旦一次就重启,保证功能的稳定性。

在linux的工作排除中,有且只有两种:at和crontab

一、仅执行一次的工作排程:at

首先linux系统上要有负责这个排程的服务atd,这样才能设置at服务,但是并不是所有的linux版本都会开启该服务,所以我们首先要启动这个服务:

systemctl restart atd       ------重新启动atd服务

systemctl enable atd       ------设置开机启动该服务

systemctl status atd       ------查看atd服务状态

1、at的运作方式

在了解at的运行方式前,先了解下atd对用户的管理,并不是所有用户都可以设置at任务的,那它又是怎么管理的呢?是通过/etc/at.allow和/etc/at.deny这两个文件进行管理的:如果at.allow文件中有则可以,没有则不行,如果没有at.allow文件,则at.deny文件中有则不行,没有则可以,如果at.deny文件也没有,那只有root权限可以。

一共有两种,一种是以文件的形式放到/var/spool/at这个目录下,atd服务会自动加载并按照文件执行

第二种是以命令的形似加入:at [-mldv] TIME

-m :相当于atrm 删除排程中的工作

-c :列出指定排除工作的实际指令

而增加排程工作,实现如下:

下面了解下常用的at命令:

atq:查询at的排程工作

atrm jobnumber:删除指定编号的排程工作

batch:是在系统空闲的时候执行排程工作,一般是在负载小于0.8

 

一、循环执行的工作排程:crontab

循环执行的工作排程是由cron这个系统服务来控制的,而cron这个服务对用户的管理其实和at一样,是通过/etc/cron.allow和/etc/cron.deny这两个文件进行管理的,而用crontab命令生成的任务是放在/var/spool/cron的目录中的。

crontab的日志在/var/log/cron下,shell脚本的打印也在该日志中

crontab的语法:crontab [-u username] [-ler] 

-l:显示所有工作排程

-e:编辑工作排程

-r:删除工作排程

下面的例子是每天12点发邮件:

下面是关于定时器中特殊符号的意义:

当我设置完定时器后,系统是怎么识别我们设置的任务的呢?系统是通过cron这个服务进行检测的,cron会每一分钟读取一次/etc/crontab(系统性的例行性任务)和/var/spool/cron里的内容。

下面了解下anacron:这个是一个什么样的存在,比如,之前设定的定时任务由于断电导致如期未执行,那么anacron就起作用了,它会一个小时执行一次,去检查那些由于超时未执行的任务,从而执行该任务。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

更多推荐

linux探路

本文发布于:2024-03-07 14:46:41,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1718109.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:linux

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!