• Linux 中计划任务-at-cron


    概念-计划任务:在某个时段自动执行某个任务  at:只执行一次

    语法:at   时间

    服务:atd   必须开启

    如没有:yum install at -y

    查看服务状态是否开启  systemctl status | start | stop | restart atd   

    实战-使用 at 创建计划任务

    1、实例

    [root@localhost ~]# date             # 查看当前时间
    2018年 05月 21日 星期一 08:24:26 PDT
    [root@localhost ~]# at 08:26         # 创建at计划任务  +  时间
    at> mkdir ./haha                     # 在08:26  创建文件夹 haha
    at> <EOT>                            # Ctrl+D  结束
    job 1 at Mon May 21 08:26:00 2018
    
    [root@localhost ~]# at -l            # 查看计划任务
    1	Mon May 21 08:26:00 2018 a root
    任务编号   执行时间                 执行者
    [root@localhost ~]# ls # 过一会查看 已创建文件夹 haha anaconda-ks.cfg haha nohup.out

    2、也可以这样写--在某天

    [root@localhost ~]# at 20:00 2018-5-22
    at> mkdir test3
    at> <EOT>
    job 4 at Tue May 22 20:00:00 2018
    

    3、在十分钟后

    [root@localhost ~]# at now +5min
    at> mkdir min-test
    at> <EOT>
    job 5 at Mon May 21 08:39:00 2018
    

    4、删除计划任务

    [root@localhost ~]# at -l
    2	Mon May 21 08:36:00 2018 a root
    4	Tue May 22 20:00:00 2018 a root
    5	Mon May 21 08:39:00 2018 a root
    6	Mon May 21 08:37:00 2018 a root
    [root@localhost ~]# atrm 6
    [root@localhost ~]# at -l
    2	Mon May 21 08:36:00 2018 a root
    4	Tue May 22 20:00:00 2018 a root
    5	Mon May 21 08:39:00 2018 a root
    

    二、周期性计划任务:在生产环境中,一般都是周期性的去执行某个计划任务,例如备份日志。

    cron 主程序

    crond服务

    1、系统级别  2、用户级别的计划任务

    主文件: /etc/crontab

    # Example of job definition:
    # .---------------- minute (0 - 59)
    # |  .------------- hour (0 - 23)
    # |  |  .---------- day of month (1 - 31)
    # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
    # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    # |  |  |  |  |
    # *  *  *  *  * user-name  command to be executed
    

     *   *   *   *   *

    分  时 日  月  年

    [root@localhost ~]# systemctl status crond
    ● crond.service - Command Scheduler
       Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
       Active: active (running) since 一 2018-05-21 07:33:13 PDT; 1h 14min ago
     Main PID: 1483 (crond)
       CGroup: /system.slice/crond.service
               └─1483 /usr/sbin/crond -n
    
    5月 21 07:33:13 localhost.localdomain systemd[1]: Started Command Scheduler.
    5月 21 07:33:13 localhost.localdomain systemd[1]: Starting Command Scheduler...
    5月 21 07:33:13 localhost.localdomain crond[1483]: (CRON) INFO (RANDOM_DELAY will be scal....)
    5月 21 07:33:15 localhost.localdomain crond[1483]: (CRON) INFO (running with inotify support)
    Hint: Some lines were ellipsized, use -l to show in full.
    
    [root@localhost ~]# systemctl restart crond
    [root@localhost ~]# systemctl enable crond
    

    2、针对用户级别

    # crontab -e   创建一个计划任务

    # crontab  -i   显示

    # crontab  -r   删除计划任务

    # crontab -e   # 写法

    分 时 日 月 星   谁做后面的事情  命令

    每个取值范围:

    分: 0-59

    时: 0-23

    日: 1 -31

    月: 1 -12

    周: 0-7   0 7 都是周日

    例: # 每月9,18 , 22 号这几天凌晨1点1分,执行一个备份脚本

    1    1    9,18,22  * * /root/backup.sh

    # 每5分钟执行一次

    */ * * * *  /root/backup.sh

    anacron

    情景: cron 用控制循环执行例行性工作,如果我要设定机器每早8点进行备份服务。除非机器保证在8点这个时间不会关机,如果关机了,cron中的脚本,在下次开机不会被执行

    解决cron 错过时间后,不执行 cron 计划任务的问题。

    anacron  并没有取代 cron 的意思,anacron的作用:机器重启后,会侦测停机期间,有没有 cron 没有执行的计划任务,如果有,会立即执行一下没有执行的任务。

  • 相关阅读:
    .NET 压缩解压库发布,支持进度查看
    WPF 蒙罩层 LoadingPage
    WPF如何用TreeView制作好友列表、播放列表
    WPF多线程UI更新——两种方法
    .NET责任链模式(混合单例模式,模板方法模式)-----制作与扩展能力验证
    .NET单例模式-------各种写法&&验证
    迭代器模式和组合模式混用
    正确理解DTO、值对象和POCO
    理解POCO
    VM
  • 原文地址:https://www.cnblogs.com/sunshine-long/p/9069958.html
Copyright © 2020-2023  润新知