失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Linux(入门基础):85---Linux单一计划任务(at服务 at atq atrm batch命令)

Linux(入门基础):85---Linux单一计划任务(at服务 at atq atrm batch命令)

时间:2022-03-05 06:22:56

相关推荐

Linux(入门基础):85---Linux单一计划任务(at服务 at atq atrm batch命令)

前言

单一计划任务:执行一次之后就不再执行的任务并且所有的Linux系统都默认支持at服务和at命令。centos支持,Ubuntu就默认不支持下面以centos系统做案例

一、at服务

1.概念

①Linux系统想要使用单一计划任务,需要at服务的支持②at服务是由atd程序产生的②并非Linux发型版本都默认启动了这个任务,有时候我们需要手动的启动这个服务③并且所有的Linux系统都有这个服务

2.atd服务的设置

重新启动at服务:systemctl restart atd让at服务开机自动启动:systemctl enable atd查看一下at目前的状态:systemctl status atd

Loaded:是否开机自启动,后面enable表示不能Active:是否正在运行,running正在运行

二、at服务的运作方式

1.at的运行方式

at这个命令是用来产生所要运行的单一计划任务的at产生一个任务,然后以文本文件的方式写入/var/spool/at/目录内,该任务便能等待atd服务来使用与执行

2./etc/at.allow与/etc/at.deny文件

并不是所有人都可以执行at计划任务,因为出于安全的原因。于是系统用这两个文件来管控at产生任务:

/etc/at.allow文件:只有在这个文件中的用户才能使用at,不在这个文件中的用户不能使用at命令(尽管没有写在at.deny中)/etc/at.deny文件:写在这个文件中的用户不能使用at命令,而没有在这个文件中的用户就可以at命令如果这两个文件都不存在,那么只有root才可以使用at命令
/etc/at.allow与/etc/at.deny文件的注意事项
/etc/at.allow文件比较严谨/etc/at.deny不严谨,因为写在这个文件的用户不能使用at命令,不在这个文件中的用户可以执行命令,不太安全
这两个文件不一定同时存在,有一个存在时只会使用其中一个。怎么使用还是看自己的设定,我的系统中默认是at.deny文件,并且文件是空的,代表所有用户都可以使用at命令设定任务

三、at的命令格式与演示案例

1.格式

at [选项] 时间格式

相关参数与选项

-m:如果at内的shell命令没有任何输入信息,也发送email给at任务使用者-l:at -l 相当于atq命令,猎虎目前系统上面所有该使用的at计划-d:at -d相当于atrm命令,可以取消一个正在at计划中的任务-v:可以使用较明显的时间格式列出at计划中的任务列表-c:后面跟任务编号,列出该任务的内容

时间的格式有以下几种

HH:MMHH:MM YYYY-MM-DDHH:MM[am/pm] [Month] [Date]HH:MM[am/pm] + number [minuter/hours/days/weeks]:就是在某个时间点之后再过多久才执行now:表示现在的时间

2.注意事项

输入at命令之后,书写任务时,命令和文件等都使用绝对路径任务书写完之后,按住ctrl+d结束退出

3.at的执行与终端显示关系

如果我们想要在终端显示Hello字样,然后在at里面输入echo "Hello",等时间到了,屏幕并不会显示信息:因为at的执行与终端环境无关,所有的标准输出/标准错误输出都发送到执行者的mailbox中,所以在终端看不到任何信息解决上面的方法:通过终端的设备处理,如果你在tty1登录,就在at内输入:echo "Hello" > /dev/tty1

4.at的输出问题(-m选项)

如果在at shell内输入的命令并没有输出任何信息,那么at不会发email给执行者。那么此时你可以使用-m选项来执行命令,这样at就会发送一个信息给执行者,而不论该命令执行有无信息输出

5.演示案例

案例一:再过5分钟之后,将/root/.bashrc文件发送给root自己
案例二:承上,上面产生的任务编号为2,查看这个任务的内容案例三:计划在-03-06 23:30关机

四、at的脱机继续执行的功能与特点

1.概念

当你用at分配一个计划之后,系统会将该项at任务独立出你的bash环境,直接交给系统的atd程序来管理。因此,但你执行了at的任务之后就可以立刻脱机了,剩下的工作就完全交给Linux管理

2.案例

你用你的Windows系统与Linux系统连接服务,两个系统之间有服务的交流,如果没有设置at任务,一个系统关机,连个系统之间的连接都会断开。如果你设置了at任务,即使你的Windows关机了,该服务还在运行

五、at任务的管理命令:atq、atrm

atq:查看你当前系统中有多少个at任务atrm:删除一个at任务,后面接at任务编号
查看任务
删除任务3再查看,任务没了

六、batch命令

1.概念

其实batch是利用at来执行命令的batch可以设置单一计划任务,并且这个任务是在你的系统较闲,CPU任务负载小于0.8的时候,才开始执行。可用于避免打扰一个非常忙碌的系统运行

2.CPU负载

CPU负载指在但一时间所负责的任务数量,而不是CPU的使用率任务数量越多,CPU的负载越高

3.注意事项

因为batch设置的任务只要当CPU负载低于0.8就会执行,所以不需要任何时间参数,直接输入batch就可以设置任务

4.演示案例

我们使用Pi脚本进行计算任务,然后使用batch命令在CPU较闲时指定updatedb命令

第一步:使用Pi命令计算

第二步:使用uptime查看平均任务负载

第三步:使用batch设置系统CPU负载低于0.8时执行updatedb任务

第四步:查看当前任务

第五步:jobs查看当前系统中的后台任务

第六步:使用kill删除编号为1、2、3、4这四个任务

第七步:刚取删除了后台任务,再使用uptime查看当前CPU负载还没降下去,所以4号batch任务还存在

第八步:我们等待了几分钟之后,等待CPU负载率降低,batch任务就执行了,执行完再查看任务就不在了

<li class="tool-item tool-active is-like "><a href="javascript:;"><svg class="icon" aria-hidden="true"><use xlink:href="#csdnc-thumbsup"></use></svg><span class="name">点赞</span><span class="count"></span></a></li><li class="tool-item tool-active is-collection "><a href="javascript:;" data-report-click="{&quot;mod&quot;:&quot;popu_824&quot;}"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-csdnc-Collection-G"></use></svg><span class="name">收藏</span></a></li><li class="tool-item tool-active is-share"><a href="javascript:;" data-report-click="{&quot;mod&quot;:&quot;1582594662_002&quot;}"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-csdnc-fenxiang"></use></svg>分享</a></li><!--打赏开始--><!--打赏结束--><li class="tool-item tool-more"><a><svg t="1575545411852" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="/2000/svg" p-id="5717" xmlns:xlink="/1999/xlink" width="200" height="200"><defs><style type="text/css"></style></defs><path d="M179.176 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5718"></path><path d="M509.684 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5719"></path><path d="M846.175 499.222m-113.245 0a113.245 113.245 0 1 0 226.49 0 113.245 113.245 0 1 0-226.49 0Z" p-id="5720"></path></svg></a><ul class="more-box"><li class="item"><a class="article-report">文章举报</a></li></ul></li></ul></div></div><div class="person-messagebox"><div class="left-message"><a href="/qq_41453285"><img src="/9/7/E/3_qq_41453285" class="avatar_pic" username="qq_41453285"><img src="/static/user-reg-year/2x/2.png" class="user-years"></a></div><div class="middle-message"><div class="title"><span class="tit"><a href="/qq_41453285" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;}" target="_blank">江南、董少</a></span><span class="flag expert"><a href="/home/help.html#classicfication" target="_blank"><svg class="icon" aria-hidden="true"><use xlink:href="#csdnc-blogexpert"></use></svg>博客专家</a></span></div><div class="text"><span>发布了1521 篇原创文章</span> · <span>获赞 1076</span> · <span>访问量 44万+</span></div></div><div class="right-message"><a href="/topics/395525630" target="_blank" class="btn btn-sm btn-red-hollow bt-button personal-messageboard">他的留言板</a><a class="btn btn-sm bt-button personal-watch" data-report-click="{&quot;mod&quot;:&quot;popu_379&quot;}">关注</a></div></div></div>

如果觉得《Linux(入门基础):85---Linux单一计划任务(at服务 at atq atrm batch命令)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。