zoukankan      html  css  js  c++  java
  • 【Linux】计划任务

    计划任务的意义

    计划任务

      创建和管理在指定时间自动执行的任务

    注意事项

      要使任务计划在指定时间自动运行,计划任务的服务必须是启动的

    计划任务分类
      使用at命令调用atd进程设置在某个特定的时间,执行一次性任务
      使用crontab命令调用crond进程,设置按固定的周期(如每天、每周等)重复执行预先计划好的任务
     
     

    一次性计划任务

    at命令
      在指定的日期、时间点自动执行预先设置的一些命令操作,属于一次性计划任务
      系统服务的名称:/etc/init.d/atd
      设置格式:at [HH:MM] [yyyy-mm-dd]
     
    atq命令
      用途:查询当前设置的at任务列表
      同at -l
    atrm命令:
      用途:删除指定任务编号的at任务
      格式:atrm 编号
      同at -d
     
    启动atd系统服务,并按Ctrl+D键提交任务
    [root@localhost ~]# service atd start
    启动 atd:                                               [确定]
    [root@localhost ~]# at 23:45
    at> reboot
    at> <EOT>
    job 1 at 2009-09-14 23:45
    [root@localhost ~]# atq
    1       2009-09-14 23:45 a root
    

      

    at -c 任务号
      查看计划任务的具体内容
      at命令常用时间格式:
      at [HH:MM]
      at [HH:MM] [yyyy-mm-dd]
      at now + 数字 [minutes|hours|days|weeks]
      at 时间 -f 文件
      使用文件中的命令作为计划任务
      at now + 5 minutes -f /root/test.sh
     
    at计划任务文件位置
      /var/spool/at/a开头的文件
      任务执行完毕,文件消失
    at计划任务文件位置
      /etc/at.deny :只有该名单里面的人不可以使用
      /etc/at.allow :只有该名单里面的人可以使用
     

    周期计划任务

    crontab命令
      按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作,属于周期性计划任务
      服务名称:/etc/init.d/crond
    主要设置文件
      用户定义的设置,位于文件:/var/spool/cron/用户名
      配置文件的通常包含三个部分
      注释
      环境变量
      cron命令
     
     
    cron服务配置文件
      位于文件:/etc/crontab
      系统cron就在该文件定义,是为了维护系统能够正常运行的,任务的格式也和用户cron有点不同,多了一个username
      crond计划任务里面的命令有时候可能不会执行,因为cron的环境变量PATH跟系统PATH不太一样,它的PATH的默认值为PATH=/sbin:/bin:/usr/sbin:/usr/bin,所以这就造成很多命令不能使用,所以解决的办法有两个,可以自己设定cron的PATH环境变量,也可以用命令的绝对路径,比如ls 我们可以使用 : /bin/ls
    cron服务的日志文件
      位于文件:/var/log/cron
     
    每小时、每天、每星期、每月定期执行的任务脚本分别存放在这些目录中
    [root@localhost ~]# cat /etc/crontab
    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO=root
    HOME=/
    # run-parts
    01 * * * * root run-parts /etc/cron.hourly
    02 4 * * * root run-parts /etc/cron.daily
    22 4 * * 0 root run-parts /etc/cron.weekly
    42 4 1 * * root run-parts /etc/cron.monthly
    

      

    管理cron计划任务
      编辑计划任务:crontab -e [-u 用户名]
      查看计划任务:crontab -l [-u 用户名]
      删除计划任务:crontab -r [-u 用户名]
                    ————root用户可以管理指定用户的计划任务
                        普通用户只能管理自己的计划任务
     
    时间数值的特殊表示方法
      * 表示该范围内的任意时间
      , 表示间隔的多个不连续时间点
      - 表示一个连续的时间范围
      /n 指定间隔的时间频率
    应用示例
      0 17 * * 1- 5 周一到周五每天17:00
      30 8 * * 1,3,5 每周一、三、五的8点30分
      0 8-18 * * * 8点到18点整
      0 12 */3 * * 每隔3天的12点整
     
     
    示例(root用户):
    每天早上7:50自动开启sshd服务,22点50时关闭
    每隔5天的12点整清空一次FTP服务器公共目录/var/ftp/pub
    每周六的7:30时,重新启动httpd服务
    每周一、三、五的17:30时,打包备份/etc/httpd目录
    [root@localhost root]# crontab -l
    50 7 * * *  /sbin/service sshd start
    50 22 * * *  /sbin/service sshd stop
    0 12 */5 * *  /bin/rm -rf /var/ftp/pub/*
    30 7 * * 6  /sbin/service httpd restart
    30 17 * * 1,3,5  /bin/tar jcvf httpdconf.tar.bz2 /etc/httpd
    
     

     

    周期计划任务注意事项

      资源分配不均
      多个计划任务同时运行
      安全检查
      防止有非法计划任务
      周和日、月不可同时并存
      容易导致计划任务时间混乱

     

  • 相关阅读:
    详解单例模式
    Spring整合Mybatis案例,献给初学的朋友
    Java反射学习总结
    IDEA JSP项目构建及学习心得
    SQL Server数据库表锁定原理以及如何解除表的锁定
    MySQL锁定机制简介
    Cassandra简介
    Linux机器上实现程序自动部署以及更新
    服务器时间同步平台化
    内存查看平台化
  • 原文地址:https://www.cnblogs.com/qq1148932219/p/10685642.html
Copyright © 2011-2022 走看看