Linux任务计划

1,at 一次性定时任务
   1)确定at安装
         chkconfig --list | grep atd    #at服务是否安装
         service atd restart    #at服务的启动
 
    2)at的访问控制
  如果系统中有/etc/at.allow文件,那么只有写入/etc/at.allow文件(白名单)中的用户可以使用at命令(/etc/at.deny文件会被忽略)
  如果系统中没有/etc/at.allow文件,只有/etc/at.deny文件,那么写入/etc/at.deny文件(黑名单)中的用户不能使用at命令。
  如果系统中这两个文件都不存在,那么只有root用户可以使用at命令
    
   3)at命令
  at [选项] 时间
    选项:
    - m:当at工作完成后,无论是否命令有输出,都用email通知执行at命令的用户
    - c工作号:显示该at工作的实际内容
    时间:
    - HH:MM    例如:02:30
    - HH:MM YYYY-MM-DD    例如02:30 2013-07-25
    - HH:MM [am | pm] [month] [date]  例如02:30 July 25
    - HH:MM [am | pm]+[minutes | hours | days | weeks]
       例如:at now + 5 minutes
      ctrl+d保存退出
 
    4)管理其他at命令
          atq    #查询当前服务器上的at工作
          atem [工作号]    #删除指定的at任务
 
2,crontab 循环定时任务
    service crond restart    #确保服务启动
    chkconfig crond on    #设置服务开机自启
 
     1)访问控制
当系统中有/etc/cron.allow文件时,只有写入此文件的用户可以使用crontab命令,没有写入的用户不能使用crontab命令。同样如果有此文件,/etc/cron.deny文件会被忽略,/etc/cron.allow文件的优先级更高
当系统中只有/etc/cron.deny文件时,则写入此文件的用户不能使用crontab命令,没有写入文件的用户可以使用crontab命令
   
    2)用户的crontab设置
        crontab [选项]
            -e:编辑crontab定时任务
            -l:查询crontab任务
            -r:删除当前用户所有的crontab任务
 
    crontab -e    #进入crontab编辑界面,打开vim编辑你的任务。
    * * * * *执行的任务

 

项目    
含义    
范围
第一个“*”
一小时当中的第几分钟
0-59
第二个“*”
一天当中的第几小时
0-23
第三个“*”
一个月当中的第几天
1-31
第四个“*”
一年当中的第几月
1-12
第五个“*”
一周当中的星期几
0-7(0和7都代表星期日)

 

 

 

 

 

 

 

 

特殊符号    
含义
*
代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思
,
代表不连续的时间。比如“0 8,12,16 * * *”命令,就代表在每天的8点0分,12点0分,16点0分,都执行一次任务
-
代表连续的时间范围。比如“0 5 * * 1-6”命令,代表在周一到周六凌晨5点0分执行任务
*/n
代表每隔多久执行一次。比如“*/10 * * * *”命令,代表每隔10分钟就执行一次命令
 
   
 
 
 
 
 
 
 
   3)常用命令
        crontab -l    #查看root用户的crontab任务
        crontab -r    #删除root用户所有的定时任务
 
   4)注意事项
        六个选项都不能为空,必须填写,如果不确定使用“*”代替任意时间。
        crontab定时任务,最小有效时间是分钟,最大时间范围是月,日期和星期最好不要在一条定时任务中出现,因为他们都是以天作为单位,非常容易让管理员混乱。
        在定时任务中,不管是直接写命令,还是在脚本中写命令,最好都是用绝对路径。
3,系统的crontab设置
        “crontab -e”是每个用户执行的命令,也就是说不同的用户身份可以执行自己的定时任务。可是有些定时任务需要系统执行,这时我们就需要编辑/etc/crontab这个配置文件了
       执行系统定时任务的方法
            1)把需要定时执行的脚本复制到 /etc/cron.{daily, weekly, monthly, hourly} 目录中的任意一个【推荐】
            
0
 
            2)修改/etc/crontab配置文件
4,anacron配置
        1)acacron是用来保证在系统关机的时候错过的定时任务,可以在系统开机之后再执行
        
        2)ancaron检测周期
           anacron会使用一天,七天,一个月作为检测周期在系统的/var/spool/anacron/目录中存在cron.{daily,weekly,monthly)文件,用于记录上次执行cron的时间和当前时间做比较,若果两个时间的差值超过了anacron的指定时间差值,证明有cron任务被漏执行
0
0
 
posted @ 2021-01-26 16:17  局域网外  阅读(94)  评论(0编辑  收藏  举报