zoukankan      html  css  js  c++  java
  • 定时任务crond、crontab

    crontab命令是用来设置定时任务规则的配置命令,配置文件/etc/crontab 与/var/spool/cron/目录下当前用户名的文件。
      -l 显示当前定时任务
      -e 编辑定时任务


    对于root用户:
    crontab -l    等同于   cat /var/spool/cron/root
    crontab -e   等同于   vim /var/spool/cron/root

    /etc/crontab 配置文件介绍:

    [root@55test /etc]# cat /etc/crontab 
    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO=root
    
    # For details see man 4 crontabs
    
    # 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
    
    • 第一列*:分钟(0-59)
    • 第二列*:时(0-23)
    • 第三列*:日(1-31)
    • 第四列*:月(1-12)
    • 第五列*:周(0-6)

    表示法:

    • - 用于表示连续区间,比如:1-10 可表示1点到10点
    • ,用于表示不连续区间,比如:1,3,9,22 可表示1点,3点,9点,22点
    • /n用于时间间隔,比如:/5 可表示每5分钟或每5小时等
    • 在指定用户下执行定时任务
    • 在定时任务及脚本中,命令使用全路径格式
    • /etc/crontab 中,特殊符号(%)需使用转义字符;写入脚本文件时,不需要使用转义字符
    • 定时任务的脚本前需加/bin/sh
    • 不要随意打印输出信息,定时任务结尾加 &>/dev/null (>/dev/null 2>&1),避免定时任务给root用户发邮件,防止产生大量报错信息占用过多inode。
    • 定时任务使用非登录的shell执行,与用户登录shell环境变量可能不同,PATH、PS1 等变量需重新export。

    举例

    时间:

    */1 * * * * /bin/sh /scripts/data.sh          #每个一分钟执行
    30 3,12 * * * /bin/sh /scripts/boy.sh         #3:30与12:30执行
    30 */6 * * * /bin/sh /scripts/boy.sh          #每隔6小时的半点执行
    30 8-18/2 * * * /bin/sh /scripts/boy.sh         #8-18之间每隔2小时的半点执行
    30 21 * * *                         #每天21点半执行
    45 4 1,10,22 * * /application/apache/bin/apachectl graceful         #每月1、10、22号4点45分执行
    10 1 * * 6,0 /application/apache/bin/apachectl graceful            #每周六周日1点10分执行
    0,30 18-23 * * * /application/apache/bin/apachectl graceful         #18-23点之间整点、半点执行
    00 */1 * * * /application/apache/bin/apachectl graceful            #每小时整点执行
    

    常见错误:

    * 23,0-7/1 * * * /application/apache/bin/apachectl graceful #23点及0-7点间每分钟执行一次
    

    命令:

    [root@55test ~]# crontab -l
    */2 * * * * /usr/bin/tar zcf /mnt/mm_`date +\%F_\%T`bak1.tz mm* &>/dev/null
    */3 * * * * /usr/bin/tar zcf /mnt/mm_$(date +\%F_\%T)bak2.tz mm* &>/dev/null
    */5 * * * * /bin/sh /work/sh-file/mm_bak.sh &>/dev/null
    [root@55test /work/sh-file]# vi mm_bak.sh 
    /usr/bin/cd /root&&/usr/bin/tar zcf /mnt/mm_$(date +%F_%T)bak3.tz ./mm* #      使用&&将两条命令关联,第一条执行成功后,再执行第二条命令
    也可以使用如下格式:
    /usr/bin/cd /root&&         #使用换行,方便阅读
    /usr/bin/tar zcf /mnt/mm_$(date +%F_%T)bak3.tz ./mm*
    

      

    定时任务调试思路:
    1、查看错误日志/var/log/cron,可以先清空日志(echo >/var/log/cron)后再查看新报错
    2、调整系统时间日期(间隔大于5分钟)、定时任务时间或定时任务执行频率,加快命令执行。
    3、通过脚本日志输出,调试定时任务,/bin/sh /server/scripts/bak.sh &>/tmp/bak.log

    君子务本,本立而道生
  • 相关阅读:
    windbg常用命令
    Windbg双机调试环境配置(Windows7/Windows XP+VirtualBox/VMware+WDK7600)
    SVN使用说明文档
    JavaScript-浏览器兼容之客户端检测
    JavaScript-执行环境
    JavaScript-函数
    JavaScript-静态私有变量
    JavaScript-构造函数模式
    JavaScript 自执行函数剖析
    easyui如何在datagrid 每行增加超链接
  • 原文地址:https://www.cnblogs.com/00huajiang/p/11363330.html
Copyright © 2011-2022 走看看