zoukankan      html  css  js  c++  java
  • cronatb

    CRONTAB语法及应用

    1:查看当前用户的定时任务

    [oracle@localhost ~]$ crontab -l
    * * * * * /home/oracle/test.sh >/dev/null 2>&1
    

    2:编辑当前用户的定时任务

    可以在编辑状态修改、删除、新增一些定时任务。注释一般用#
    [oracle@localhost ~]$ crontab -e

    3:删除当前用户的定时任务

    [root@localhost ~]# crontab -r
    [root@localhost ~]# crontab -l
    no crontab for root

    4:cron格式

    如下所示,一般crontab文件里面的定时任务格式如下所示:
    59 23 * * * /home/oracle/scripts/alert_log_archive.sh >/dev/null 2>&1
    crontab 文件中每个条目中各个域的意义和格式:
    第一列 分钟: 1——59
    第二列 小时: 1——23(0表示子夜)
    第三列 日 : 1——31
    第四列 月 : 1——12
    第五列 星期: 星期0——6(0表示星期天,1表示星期一、以此类推)
    第六列 要运行的命令
    我们暂且用C1、C2、C3、C4、C5、C6代表这六列,前面五列通过组合方式来决定执行脚本的频率,最小频率为每分钟执行一次,其中Cn可以用 * ; /n ; T1-T2; a,b,c; 四种形式来表示:
    当 C1 为 * 时表示每分钟都要执行脚本,C2 为 * 时表示每小时都要执行程式,依次类推.....
    当 C1 为 T1-T2 时表示从第 T1 分钟到第 T2 分钟这段时间内要执行,C2 为 T1-T2 时表示从第 T1 到第 T2 小时都要执行,依次类推....
    当 C1 为 /n 时表示每 n 分钟的时间间隔执行一次,C2 为 /n 表示每隔n小时的间隔执行一次,依次类推.....
    当 C1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,C2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,依次类推....
    下面列举几个例子供大家参考
    1: 59 23 * * * /home/oracle/scripts/alert_log_archive.sh >/dev/null 2>&1
    表示每天23点59分执行脚本/home/oracle/scripts/alert_log_archive.sh
    2: /5 * * * * /home/oracle/scripts/monitoring_alert_log.sh >/dev/null 2>&1
    表示每5分钟执行一次脚本/home/oracle/scripts/monitoring_alert_log.sh
    3: 0 20 * * 1-5 mail -s "
    ******" chen@domain.name < /tmp/maildata
    周一到周五每天下午 20:00 寄一封信给 chen@domain.name

    关于>/dev/null 2>&1的解释:
    0表示键盘输入
    1表示标准输出
    2表示错误输出
    我们首先创建test.sh脚本如下:

    #!/bin/sh
    echo "hello, everybody, now is " `date`
    date >> test.txt
    

    然后添加作业

    * * * * * /home/oracle/test.sh >/home/oracle/log.txt & 默认值为1,即和下面命令一致
    * * * * * /home/oracle/test.sh 1>/home/oracle/log.txt &
    * * * * * /home/oracle/test.sh 2>/home/oracle/log.txt &
    * * * * * /home/oracle/test.sh 2>/home/oracle/log.txt 2>&1 &
    

    1,2将tesh.sh 命令输出重定向到log.txt, 即输出内容不打印到屏幕上,而是输出到log.txt文件中。如果你需要追加而不是覆盖,可以用 >>代替>
    2>&1 是将错误输出重定向到标准输出。 然后将标准输入重定向到文件log.txt。
    &1 表示的是文件描述1,表示标准输出,如果这里少了&就成了数字1,就表示重定向到文件1。
    注意事项:
    配置定时任务时,需要注意两个问题:
    1: 在SHELL中设置了必要的环境变量;例如一个shell脚本手工执行OK,但是配置成后台作业执行时,获取不到ORACLE的环境变量,这是因为crontab环境变量问题,Crontab的环境默认情况下并不包含系统中当前用户的环境。所以,你需要在shell脚本中添加必要的环境变量的设置
    2: 尽量所有的文件都采用完全路径方式,避免使用相对路径。
    crontab 需要使用绝对路径,包括/sbin/
    /usr/bin/下面基本不用,因为有一个预定义好的PATH

  • 相关阅读:
    U3D中的一些方法和属性
    Animation
    官哥雷达模组样品,特列出技术指标,欢迎高手捧场
    BGA256芯片植球全过程体验(原创)
    最高分辨率行间转移CCD图像传感器
    PYTHON5000:CMOS图象传感器演示
    四张图表让你搞懂电离辐射及常用的量
    TVP5150 PAL/NTSC ccd cmos 模拟摄像头视频 转换 VGA输出
    CyAPI环境搭建
    usb fx2 cy68013 Cyapi使用心得
  • 原文地址:https://www.cnblogs.com/irockcode/p/9120639.html
Copyright © 2011-2022 走看看