zoukankan      html  css  js  c++  java
  • Linux进程管理(第二版) --计划任务

    计划任务

    一、一次性计划任务

    at命令 #功能:安排一个/几个命令在指定时间(时刻)运行一次

    1at的命令格式及参数 

    at [-f 文件名时间

    at -d 或者 atrm 删除队列中的任务

    at生成的文件保存在/var/spool/at目录下】 

    at -l  或者 atq 查看队列中的任务

    2at指定时间的方式

          绝对计时方法[推荐]

    合法时间:midnight noon teatime 

    hh:mm [today] 

    hh:mm tomorrow 

    hh:mm 星期 

    hh:mm MM/DD/YY[推荐] 【DD.MM.YY  YYMMDD

         相对计时方法 

    now + n minutes 

    now + n hours 

    now + n days

    【示例】

    指定在今天下午 17:30 执行某命令(假设现在时间是下午14:30,2011111

    at 5:30pm 

    at 17:30 [today] #today可省略 

    at now + 3 hours 

    at now + 180 minutes 

    at 17:30 11.1.11 

    at 17:30 1/11/11 

    3at使用范例

    I.交互方式

    at 900

    II.使用脚本文件方式

    1、生成at.script文件

    2、使用at命令

    at -f at.script 9:00 1/11/11 或者 at < at.script 9:00

    附 -at计划任务文件保存在/var/spool/at/目录下

    附-finger [+username] :可查看系统中的计划任务

    如果at尚未启动,则用:/etc/rc.d/init.d/atd start 或 service atd start 手工启动

    4at的执行结果与配置文件

    如果/etc/at.allow文件存在,那么只有列在此文件中的用户才可以使用at命令;/etc/at.allow文件不存在,则检查/etc/at.deny 文件是否存在。若/etc/at.deny存在,则在此文件中列出的用户都不能使用at命令。如果两个文件都不存在,则只有超级用户可以使用at命令。如果两个文件都存在而且均为空,则所有用户都可以使用at命令。 

    batch命令【不常用】

    1、作用:安排一个或多个命令在系统负载较轻时运行一次(一般情况下负载较轻指平 均负载降到0.8以下)。 

    2、使用方法同at,几乎一模一样,一般是事务不太重要时使用该命令

    Man解释: batch   executes commands when system load levels permit; in other words, when the load average drops below 0.8, or the value specified[规定的] in the  invocation[祈祷] of atd.

    二、周期性计划任务

    crontab 命令

    1、作用用于生成cron进程所需要的crontab文件

    2、格式:crontab {-l|-r|-e} 

    -l  显示当前的crontab 内容

    -r 删除当前的crontab【全部清除,并不建议用】 

    -e 使用编辑器编辑当前的crontab文件。

    3crontab文件格式 

    minute hour day-of-month month-of-year day-of-week commands 

    分钟小时 天 月 星期几 命令/脚本

    Minute 一小时中的哪一分钟[0~59] 

    hour  一天中的哪个小时 [0~23] 24小时制】

    day-of-month  一月中的哪一天 [1~31] 

    month-of-year  一年中的哪一月 [1~12] 

    day-of-week  一周中的哪一天 [0~6] 

    commands  执行的命令

    【分钟:*/2 :每隔两分钟】

    【小时:*/1:每隔一个小时 12-14 :12点到14点】

    把知道的具体的都时间值添上,把不知道的时间值都填*

    E.g

    */2 12-14 * 3-6,9-12 1-5 /bin/sh /root/cron.script > /dev/null 2> /root/cron.err

    4、书写注意事项

    I. 时间值选都不能为空,必须填入

    II. 不知道/不需要制定的项目的值使用统配符*表示任何时间

    III.每个时间字段都可以指定多个值,不连续的值用”,”间隔,连续的值用”-”间隔。 

    IV. 命令应该给出绝对路径

    V. 用户必须具有运行所对应的命令或程序的权限

      VI.计划任务还应保存一些额外的信息,如出错信息等

    5crontab的配置文件 /etc/crontab

    #旧版的Linux最后几行,定义了每小时,每天等的具体时间系统的周期执行任务

    6cron配置文件

    作用:限制哪些用户可以使用crontab命令,作用与at相同

    /etc/cron.allow

    /etc/cron.deny

    附-crontab文件建立好后,可以在/var/spool/cron/目录中找到,可以查看文件其中的内容:more /var/spool/cron/root,得到的信息如同crontab -l

    附-如果crod没有启动,需手动启动:/etc/rc.d/init.d/crond start

    三、进程处理方式

    1standalone 独立运行,持续驻留系统,消耗系统资源,监听客户请求

    2xinetd 进程托管,互联网超级守护进程,xinetd来监听客户请求,并将之发送给相关进程,而不是服务亲自监听

    3atdcrond 计划任务,每隔一分钟,从睡眠中醒来并检查是否有需要执行的任务

    -为了安全起见,定时任务以及后面的Shell脚本,都要写命令的绝对路径!

  • 相关阅读:
    在controller间分享数据(第一种办法)
    AngularJS之Factory vs Service vs Provider
    directive和controller如何通信
    AngularJS 之Services讲解
    AngularJS心得体会
    int 和Integer
    2019天梯赛练习题(L2专项练习)
    2019天梯赛练习题(L1专项练习)
    Hash冲突的几种解决方法
    HashMap
  • 原文地址:https://www.cnblogs.com/itrena/p/5927045.html
Copyright © 2011-2022 走看看