zoukankan      html  css  js  c++  java
  • Crontab定时任务配置

    1、登录到root用户。

    2、在root下输入:crontab -e

    3、可能会提示你:

         no crontab for root - using an empty one

         然后会叫你“Select a editor ......”下面有几个选项,就是叫你选择编辑器。(选vim.tiny)

         或直接进入编辑页面。

    4、进入crontab编辑页面之后就直接"shift+:",然后输入wq保存即可。然后一个新的crontab就生成了!

    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

    如下所示,一般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 "**********" kerry@domain.name < /tmp/maildata

    周一到周五每天下午 20:00 寄一封信给 kerry@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: 尽量所有的文件都采用完全路径方式,避免使用相对路径。

  • 相关阅读:
    Android学习笔记----天地图API开发之UnsatisfiedLinkError
    Android学习笔记----ArcGIS在线地图服务(Android API)坐标纠偏
    Android学习笔记----Java字符串MD5加密
    Android学习笔记----Java中的字符串比较
    MySQL数据库导入错误:ERROR 1064 (42000) 和 ERROR at line xx: Unknown command ''.
    新浪微博POI点签到数据及可视化的初步成果
    Chrome调试本地文件无法使用window.opener对象进行窗口间值传递
    132、Android安全机制(2) Android Permission权限控制机制(转载)
    用addOnGlobalLayoutListener获取View的宽高
    Android Studio解决unspecified on project app resolves to an APK archive which is not supported
  • 原文地址:https://www.cnblogs.com/luojianqun/p/4585035.html
Copyright © 2011-2022 走看看