• linux系统计划任务


    at crontab
    一次性计划任务 周期性计划任务

    摘要:linux系统中,可以通过crontab和at两种命令实现计划任务;
    计划任务的作用:是做一些周期性的任务,在生产中的主要用来定期备份数据.


    at 一次性计划任务

    yum install at -y 下载at
    systemctl restart atd 运行at
    systemctl enable atd 设置开机自启

    • 使用格式:
      at +时间
    • 查看计划任务:
      at -l
      atq
    • 查看计划任务内容:
      at -c jobid
    • 删除计划任务:
      atrm jobid
    • 创建计划任务:
      at 时间
    • ctrl d -->保存

    演示:

    ╭─root@localhost.localdomain ~  
    ╰─➤  yum install at -y      #因为at不是本机自带所以需要下载at
    已加载插件:fastestmirror, langpacks
    ...  #省略加载内容
    更新完毕:
      at.x86_64 0:3.1.13-24.el7                       
    
    完毕!
    ╭─root@localhost.localdomain ~  
    ╰─➤             systemctl restart atd      #运行at
    ╭─root@localhost.localdomain ~  
    ╰─➤             systemctl enable atd     #设置开机自启             
    ╭─root@localhost.localdomain ~  
    ╰─➤  at 10:00      #输入“at  时间”;开始设置at   ,支持am、pm           
    at> touch /home/cjk      #输入任务内容
    at> echo "hello" >> /home/cjk<EOT>    #输入完毕,按Ctrl+D保存
    job 2 at Wed May 15 10:00:00 2019     
    ╭─root@localhost.localdomain ~  
    ╰─➤  at -l      #查询at任务
    2	Wed May 15 10:00:00 2019 a root   #任务id+时间
    ╭─root@localhost.localdomain ~   
    ╰─➤  atq     #查询at任务
    2	Wed May 15 10:00:00 2019 a root
    ╭─root@localhost.localdomain ~  
    ╰─➤  at -c 2     #at -c 任务id   查询at任务                                
    ...  #省略加载内容
    touch /home/cjk
    echo "hello" >> /home/cjk
    marcinDELIMITER4dbc8ae5                               
    ╭─root@localhost.localdomain ~  
    ╰─➤  atrm 2        # atrm  +任务id --->删除任务                           
    ╭─root@localhost.localdomain ~  
    ╰─➤  atq
    ╭─root@localhost.localdomain ~  
    ╰─➤ 
    

    crontab 周期性任务

    常用选项:

    -e: 编辑计划任务 edit
    -l: 查看计划任务 display
    -u: 指定用户 user
    -r: 删除计划任务 remove

    crontab文件介绍

    ╭─root@localhost.localdomain ~
    ╰─➤ cat /etc/crontab
    文件内容截屏:

    演示:

    ╭─root@localhost.localdomain ~  
    ╰─➤  crontab -e -u du     #指定du用户创建crontab
    no crontab for du - using an empty one
    crontab: installing new crontab
    ╭─root@localhost.localdomain ~  
    ╰─➤  crontab -lu du      #查看crontab    
                                                          
    45 4 1,10,22 * * /usr/bin/systemctl restart network
    */30 18-23 * * * /usr/bin/systemctl restart network
    30 2 * * 7 /usr/bin/cp /etc/fstab /tmp/fstab-`date “+\%F_\%T” `
    
    ╭─root@localhost.localdomain ~  
    ╰─➤  crontab -eu du    #打开du用户的crontab任务文件,把任务注释掉以删除的某个任务
           #计划任务都会被保存在 /var/spool/cron/,文件命名就是用户名:
    crontab: installing new crontab
    ╭─root@localhost.localdomain ~  
    ╰─➤  crontab -lu du
    
    #45 4 1,10,22 * * /usr/bin/systemctl restart network      #用“#”把任务注释掉  
    */30 18-23 * * * /usr/bin/systemctl restart network
    30 2 * * 7 /usr/bin/cp /etc/fstab /tmp/fstab-`date “+\%F_\%T” `  #计划任务不识别%需用  转译
    
    ╭─root@localhost.localdomain ~  
    ╰─➤  crontab -ru du   #-r删除crontab,会删除整个文件,删除所有任务;
    ╭─root@localhost.localdomain ~  
    ╰─➤  crontab -lu du
    no crontab for du
    
    ##最后重启crontab生效
    

    编写计划任务实例:

    实例1、每月1、10、22日的4:45重启network服务

    45 4 1,10,22 * * /usr/bin/systemctl restart network
    

    实例2、每周六、周日的1:10重启network服务

    10 1 * * 6,7 /usr/bin/systemctl restart network
    

    实例3、每天18:00至23:00之间每隔30分钟重启network服务

    */30 18-23 * * * /usr/bin/systemctl restart network
    

    实例4、每隔两天的上午8点到11点的第3和第15分钟执行一次重启

    3,15 8-11 */2 * * /usr/sbin/reboot
    

    实例5、每周日凌晨2点30分,运行cp命令对/etc/fstab文件进行备份,存储位置为/backup/fstab-YYYY-MM-DD-hh-mm-ss;

    30 2 * * 7 /usr/bin/cp /etc/fstab /tmp/fstab-`date “+\%F_\%T”`
    

    实例6、一月一号的4点重启smb

    0 4 1 1 * /usr/bin/systemctl restart smb   #4点钟只执行一次命令,正确答案;
    * 4 1 1 * /usr/bin/systemctl restart smb   #四点到五点执行了60次命令,错误答案:
    

    实例7、晚上11点到早上7点之间,每隔一小时重启smb

    0 23-0/1,1-7/1 * * * /usr/bin/systemctl restart smb
    0 23,0,1,2,3,4,5,6,7  * * * /usr/bin/systemctl restart smb
    

    实例8、每一小时重启smb

    0 * * * * /usr/bin/systemctl restart smb
    

  • 相关阅读:
    部署K2 Blackpearl流程时出错(与基础事务管理器的通信失败或Communication with the underlying transaction manager has failed.)
    用SQL命令将查询结果集导出为文本文件
    SQL函数计算两个日期间的工作日天数
    CommonJS模块加载方法
    async 属性
    如何用VS.NET2005调式.asp和.aspx混合的web系统
    对web.config文件的节点进行加解密
    [转]看似简单的问题 静态方法和实例化方法的区别
    单引号(')和双引号(")
    从一个时间段中查找出星期为“Sunday”的日期
  • 原文地址:https://www.cnblogs.com/du-z/p/10858967.html
Copyright © 2020-2023  润新知