• linux任务计划


    任务计划

    1、在未来的某个时间点执行一次某任务;
    at
    batch
    2、周期性执行;
    cron
    

    at用法

    at 时间
    at> COMMAND
    at> Ctrl+d
    
    指定时间:
    绝对时间:HH:MM、DD.MM.YY、MM/DD/YY;   #未来的时间
    相对时间:now+minutes,hours,days,weeks;
    模糊时间:midnight(午夜12点),noon(中午12点),teatime(下午4点);
    命令的执行结果,将以邮件的形式发送给安排任务的用户;
    
    [root@centos6 ~]# at -l     #列出任务列表
    1	2019-12-12 10:00 a root    #a表示队列
    [root@centos6 ~]# at -d JOB_ID    #删除某个任务
    

    batch

    自动选择系统空闲时间执行任务;不需要指定时间,其余格式和at相同
    

    at的黑白名单

    /etc/at.allow
    /etc/at.deny
    如果两个文件都存在,/etc/at.allow生效;如果两个文件都不生效,只允许root用户使用at
    

    cron

    cron:自身是一个不间断运行的服务;如果任务因为服务器故障造成越过时间点,将不会再执行;
    anacron:cron的补充;能够实现cron因为各种原因在过去的该执行而未执行的任务在恢复正常后执行一次;
    
    cron:
    系统cron任务:定义在/etc/crontab
    格式:分钟  小时  天  月  周  用户  任务
    
    用户cron任务:定义在/var/spool/cron/USERNAME
    格式:分钟  小时  天  月  周  任务
    
    时间的有效取值:
    分钟:0——59
    小时:0——23
    天:1——31
    月:1——12
    周:0——7,0和7都表示周日
    
    时间通配表示:
    *:对应的所有有效取值(每);
    Example:
    3 * * * * :每小时的第3分钟
    3 * * * 7:每周日每小时的第3分钟
    13 12 * * *:每天的12点13分 
    13 12 * * 5:每周五的12点13分
    13 12 6 * *:每月6号的12点13分
    13 12 6 * 3:每月6号如果是周三,那么在12点13分执行;几号和周几一般不同时使用;
    13 12 6 7 *:每年的7月6号12点13分
    
    ,:离散时间点;
    Example:
    10,40 * * * *:每小时的第10分和第40分钟;每半小时的任务
    10,40 * * * 2,5:每周二和每周五每小时的第10分和第40分执行
    10,40 2 * * 2,5:每周二和每周五凌晨2点的第10分和第40分执行
    
    -:连续时间点:
    Example:
    10 02 * * 1-5:每周一到周五的2点10分
    
    /#:对应取值范围内每多久一次:
    Example:
    */3 * * * *:每3分钟
    
    注意:
    08 */2 * * *:每两小时的第8分钟执行一次;千万不能写成* */2 * * *,这个相当于每分钟都执行!!!
    10 04 */2 * *:每两天执行一次;也千万不要写成* * */2 * *,这个也相当于每分钟都执行一次!!!
    
    执行结果将以邮件形式发送给管理员;如果不想要邮件,使用:
    */3 * * * * /bin/cat /etc/fstab > /dev/null;把对的结果都扔到数据黑洞,错误的结果发生邮件
    

    cron的环境变量

    cron执行的所有命令都去PATH环境变量指定路径寻找;
    但如果用户没登录,是没有PATH环境变量的,所以cron会去/bin:/sbin:/usr/bin:/usr/sbin寻找;
    所以在cron中的命令都使用绝对路径;
    如果执行脚本的话,不需要在cron中指定路径,需要在脚本中指定PATH路径,如下:
    #!/bin/bash
    export PATH=
    

    用户任务的管理

    不建议直接使用vim编辑用户任务的文件;使用crontab工具自带语法检查功能;
    
    [root@localhost ~]# crontab -l       #列出任务
    [root@localhost ~]# crontab -e       #定义用户任务
    [root@localhost ~]# crontab -r       #移除所有任务
    [root@localhost ~]# crontab -u USERNAME -e     #给其他用户定义用户任务
    

    anacron

    配置文件:/etc/anacrontab
    
    #period in days   delay in minutes   job-identifier   command       #第4个字段
    1	5	cron.daily		nice run-parts /etc/cron.daily   
    1:表示过去一天没执行的任务
    5:表示开机后的第5分钟执行
    

    注意

    要确保cron计划任务能够正常执行,需要确保cron服务是正常启动的;
    [root@localhost ~]# systemctl status crond         #cron默认是在服务器上的,所以默认是启动的
    anacron默认是放在笔记本上的,所以服务默认是关闭的
  • 相关阅读:
    梯度下降优化算法
    【网站管理6】_一个网站SEO优化方案
    25条div+CSS编程提醒及小技巧整理
    100多个基础常用JS函数和语法集合大全
    Understanding Built-In User and Group Accounts in IIS 7
    【网站seo优化】SEO优化每天的工作内容是什么?
    如何实现织梦dedecms表单提交时发送邮箱功能【已解决】
    【织梦dedecms安全设置】dedecms如何防止被黑?dedecms被黑了怎么办?
    【dedecms网站安全】如何防止dedecms网站被DDos攻击
    【织梦dedecms系统安全】完善DEDECMS目录的权限安全设置
  • 原文地址:https://www.cnblogs.com/dongzhanyi123/p/12026404.html
Copyright © 2020-2023  润新知