zoukankan      html  css  js  c++  java
  • 计划任务之一次性计划任务(at)和周期性计划任务(crontab)(重点)

    一:知识要点

    ----计划任务的意义
    ----计划任务分类
    ----用户计划任务crontab
    ----系统计划任务
    ----计划任务使用注意事项
    ----anacron服务介绍

    二:计划任务的意义
    计划任务

    ----创建和管理在指定时间自动执行的任务
    注意事项
    ----要使任务计划在指定时间自动运行,计划任务的服务必须是启动的
    计划任务分类
    ----使用at命令调用atd进程设置在某个特定的时间,执行一次性任务
    ----使用crontab命令调用crond进程,设置按固定的周期(如每天、每周等)重复执行预先计划好的任务
    一次性计划任务
    at命令
    ----在指定的日期、时间点自动执行预先设置的一些命令操作,属于一次性计划任务
    ----系统服务的名称:/etc/init.d/atd
    ----设置格式:at [HH:MM] [yyyy-mm-dd]

    at -c 任务号
    ----查看计划任务的具体内容
    atq命令
    ----用途:查询当前设置的at任务列表
    同at -l
    atrm命令:
    ----用途:删除指定任务编号的at任务
    ----格式:atrm 编号
    同 at -d
    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开头的文件,任务执行完毕,文件消失

    /etc/at.deny :只有该名单里面的人不可以使用

    /etc/at.allow :只有该名单里面的人可以使用

    crontab命令(周期计划任务
    按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作,属于周期性计划任务
    服务名称:/etc/init.d/crond
    主要设置文件
    用户定义的设置,位于文件:/var/spool/cron/用户名
    配置文件的通常包含三个部分

    ----注释
    ----环境变量
    ----cron命令
    cron服务配置文件
    ----位于文件:/etc/crontab
    -----系统cron就在该文件定义,是为了维护系统能够正常运行的,任务的格式也和用户cron有点不同,多了一个username
    管理cron计划任务
    -----编辑计划任务:crontab -e [-u 用户名]
    -----查看计划任务:crontab -l [-u 用户名]
    -----删除计划任务:crontab -r [-u 用户名]

     

     

     实例:创建目录/tmp/testdir-当前日期时间

    [root@localhost ~]# mkdir /tmp/testdir-$(date +%Y%m%d%H%M)

    [root@localhost ~]# ls

    router-201909060933

    实例:每4小时执行一次对/etc目录的备份,备份至/backup目录中,保存的目录名为形式如etc-201504020202

    [root@localhost ~]# crontab -l
    00 */4 * * * cd / && tar -jcf /backup/etc-$(date +\%Y\%m\%d\%H\%M).tar.bz etc/

    实例:每周2,4,6备份/var/log/messages文件至/backup/messages_logs/目录中,

    保存的文 文件名格式为messages-20150402

    [root@localhost ~]# crontab -l
    00 00 * * 2,4,6 cd /var/log/ && tar -jcf /backup/messages_logs/messages-$(date +\%Y\%m\%d).tar.bz messages

    实例:每天每两小时取当前系统/tar/op.txt文件中的所有以S开头的信息至/tmp/po.txt文件中。

    [root@localhost ~]# crontab -l
    * */2 * * *b grep "^S" /tar/op.txt > /tmp/po.txt

    实例:工作日的工作时间内,每两小时执行一次echo“howdy”

    [root@localhost ~]# crontab -l
    * */2 * * 1-5 echo "howdy"

    每月每天每小时的第 0 分钟执行一次 /bin/ls

    0 * * * * /bin/ls

    在 12 月内, 每天的早上 6 点到 12 点,每隔 3 个小时 0 分钟执行一次 /usr/bin/backup

    0 6-12/3 * 12 * /usr/bin/backup

    周一到周五每天下午 5:00 寄一封信给 alex@domain.name

    0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata

    每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"

    20 0-23/2 * * * echo "haha"

    下面再看看几个具体的例子:

    0 */2 * * * /sbin/service httpd restart  意思是每两个小时重启一次apache 
    
    50 7 * * * /sbin/service sshd start  意思是每天750开启ssh服务 
    
    50 22 * * * /sbin/service sshd stop  意思是每天2250关闭ssh服务 
    
    0 0 1,15 * * fsck /home  每月1号和15号检查/home 磁盘 
    
    1 * * * * /home/bruce/backup  每小时的第一分执行 /home/bruce/backup这个文件 
    
    00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} ;  每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。
    
    30 6 */10 * * ls  意思是每月的1112131日是的630执行一次ls命令

    实例:创建目录/tmp/testdir-当前日期时间

     [root@localhost ~]# mkdir /tmp/testdir-$(date +%Y%m%d%H%M)

    ======================================================================================

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

    anacron程序介绍
    anacron程序

    ----弥补cron在系统关机后不能执行计划任务的问题
    ----不能替代cron
    ----会每个小时被执行一次,脚本在/etc/cron.hourly
    ----按天、周或月为单位去检查系统未进行的cron任务
    ----/var/spool/anacron
    ----服务名称:/etc/init.d/anacrond
    -----开机时自动运行,然后将未执行的计划任务执行一遍后,anacron 就会自动停止

    ========================================================================

    2: crontab 命令,设置周期性计划任务
    1>脚本名称:/etc/init.d/crond
    2>主要配置文件:
    ·全局配置文件:/etc/crontab

    .编辑:crontab -e [-u 用户名]
    ·查看:crontab -l [-u 用户名]
    ·删除:crontab -r [-u 用户名]
    注意:-u 选项只有 root 用户可用

    示例:

  • 相关阅读:
    iOS 数据存储
    iOS 中@property() 括号中,可以填写的属性?
    iOS 中关闭键盘方法
    iBeacons 资源汇总
    iOS7 下去掉状态栏(全屏)
    监听器HttpSessionListener
    监听器 HttpSessionBindingListener
    servlet 3.0 的使用
    工厂模式小例子 getDaoImp
    servlet和filter初始化
  • 原文地址:https://www.cnblogs.com/CMX_Shmily/p/11458989.html
Copyright © 2011-2022 走看看