zoukankan      html  css  js  c++  java
  • Unix + OS AIX Crontab

    Linux 中 crontab 详解及示例

    http://darkmasky.iteye.com/blog/224891

    http://blog.chinaunix.net/u/31547/showart_438018.html

    cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:

    /sbin/service crond start //启动服务
    /sbin/service crond stop //关闭服务
    /sbin/service crond restart //重启服务
    /sbin/service crond reload //重新载入配置

    你也可以将这个服务在系统启动的时候自动启动:
    在/etc/rc.d/rc.local这个脚本的末尾加上:
    /sbin/service crond start

    现在Cron这个服务已经在进程里面了,我们就可以用这个服务了,Cron服务提供以下几种接口供大家使用:

    1、直接用crontab命令编辑

    cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:

    crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
    crontab -l //列出某个用户cron服务的详细内容
    crontab -r //删除某个用户的cron服务
    crontab -e //编辑某个用户的cron服务


    比如说root查看自己的cron设置:crontab -u root -l
    再例如,root想删除fred的cron设置:crontab -u fred -r
    在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
    进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt

    这个格式的前一部分是对时间的设定,后面一部分是要执行的命令,如果要执行的命令太多,可以把这些命令写到一个脚本里面,然后在这里直接调用这个脚本就可以了,调用的时候记得写出命令的完整路径。时间的设定我们有一定的约定,前面五个*号代表五个数字,数字的取值范围和含义如下:

    分钟 (0-59)
    小時 (0-23)
    日期 (1-31)
    月份 (1-12)
    星期 (0-6)//0代表星期天

    除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。以下举几个例子说明问题:

    每天早上6点

    0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。

    每两个小时

    0 */2 * * * echo "Have a break now." >> /tmp/test.txt

    晚上11点到早上8点之间每两个小时,早上八点

    0 23-7/2,8 * * * echo "Have a good dream:)" >> /tmp/test.txt

    每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点

    0 11 4 * 1-3 command line

    1月1日早上4点

    0 4 1 1 * command line

    每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。

    2、编辑/etc/crontab 文件配置cron

    cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用 cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:

    SHELL=/bin/bash

    PATH=/sbin:/bin:/usr/sbin:/usr/bin

    MAILTO=root      //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号

    HOME=/    //使用者运行的路径,这里是根目录

    # run-parts

    01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本
    02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本
    22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本
    42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本

    大家注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。

    --------------------------------------
    基本格式 :
    *  *  *  *  *  command
    分 时 日 月 周 命令

    第1列表示分钟1~59 每分钟用*或者 */1表示
    第2列表示小时1~23(0表示0点)
    第3列表示日期1~31
    第4列表示月份1~12
    第5列标识号星期0~6(0表示星期天)
    第6列要运行的命令

    crontab文件的一些例子:

    30 21 * * * /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示每晚的21:30重启lighttpd 。

    45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示每月1、10、22日的4 : 45重启lighttpd 。

    10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示每周六、周日的1 : 10重启lighttpd 。

    0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启lighttpd 。

    0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
    上面的例子表示每星期六的11 : 00 pm重启lighttpd 。

    * */1 * * * /usr/local/etc/rc.d/lighttpd restart
    每一小时重启lighttpd

    * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
    晚上11点到早上7点之间,每隔一小时重启lighttpd

    0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
    每月的4号与每周一到周三的11点重启lighttpd

    0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
    一月一号的4点重启lighttpd

     

    AIX日志系统 日志的清理

    http://yangbin210.iteye.com/blog/261592
    errclear命令可以用来清理错误日志
    并且默认情况下cron会每天清理错误日志
    # crontab -l
    0 11 * * * /usr/bin/errclear -d S,O 30
    0 12 * * * /usr/bin/errclear -d H 90
    0 15 * * *  /usr/lib/ras/dumpcheck >;/dev/null 2>;&1
    显然,找上面的例子,S,O 类的错误会保留30天,而H的错误会保留90天
    errclear 0   删除多有记录
    errclear 7 删除7天以前的记录
    smit errclear

    记录cron的所有错误信息

    可以在/etc/syslog.conf加入下面一行
    cron.err      /var/cronerr.log
    定义记录cron的err信息到/var/cronerr.log文件


    IBM-AIX 系统常用命令

    http://darkmasky.iteye.com/blog/224936

    http://www.blogjava.net/luckyrobbie/archive/2006/03/27/37543.html

    关闭aix的命令:shutdown ->正常关机,关闭所有服务. halt -> 相当于直接关闭电源.
    重启aix:shutdown -Fr

    查看出错信息:

    errpt errpt -a | more -> 分页显示 errpt -a > /tmp/err01 输出到文件.
    清除错误信息:

    errclear 0

    查看AIX系统上的错误日志

    http://airong.iteye.com/blog/57989

    在系统运行时,一些系统错误会记录在errlog 中,其中有些错误还会在终端上显示。检查错误日志可用以下命令:

    #errpt|more 查看系统所有的记录  

    IDENTIFIER   TIMESTAM P   T   C   RESOURCE_NAME  DESCRIPTION

    E85C5C4C    0426104399   P   S   CFGLFT        SOFTWARE PROGRAM ERROR

    2BFA76F6     0426104099   T   S   SYSPROC       SYSTEM SHUTDOWN BY USER

    9D4CF6E7    0426104399   T   O   errdemon        ERROR LOGGING TURNED ON

    1E2AC07E    0426103999   T   O   errdemon        ERROR LOGGING TURNED OFF

    1E5EER4T     0423132999   T   O   clstrmgr         OPERATOR NOTIFICATION     

    其中

    IDENTIFIER 为错误编号,当需要检查详细信息时常会用到。

    TIME STAMP 为时间标签,它记录的是出错时间,其格式: 月月日日时时分分年年

    T Type , 它记录的是错误类型

    P :为永久错误,需引起注意

        T :为临时错误。

    C Class,  它记录的是错误种类,如

    H : Hardware

    S : Software

    O : Errloger command messages

    U : undetermined

     

    RESOURCE_NAME   为错误来源

    DESCRIPTION 为错误描述

    #errpt -aj <IDENTIFIER> 查看系统详细记录内容

    其中IDENTIFIER 为错误编号,如 #errpt -aj 0426104399

    #errpt -dH              查看系统所有的硬件出错记录

     


    # AIX 定时监控 磁盘空间报警和系统错误日志 问题
    00 02 * * * /var/snlog/dislog
    00 16 * * * /var/snlog/dislog

    文件:dislog
    内容:
    #!/usr/bin/ksh
    /var/snlog/disfs > /var/snlog/errlog`hostname`
    errpt >> /var/snlog/errlog`hostname`
    lsps -a >> /var/snlog/errlog`hostname`

    文件:disfs
    内容:
    echo "==`hostname`=="
    df |head -1;df|grep 100%;df|grep 99%;df|grep 98%;df|grep 97%;df|grep 96%;
    printf "##########################################################################\n"

    文件:errlogp6550b2
    内容:
    ==p6550b2==
    Filesystem    512-blocks      Free %Used    Iused %Iused Mounted on
    /dev/fslv00    100663296   4015848   97%     8125     2% /db2data
    ##########################################################################
    IDENTIFIER TIMESTAMP  T C RESOURCE_NAME  DESCRIPTION
    F7FA22C9   0917162810 I O SYSJ2          UNABLE TO ALLOCATE SPACE IN FILE SYSTEM
    38A8D4BB   0825181810 I H ent0           HEA PORT DOWN
    38A8D4BB   0811172110 I H ent0           HEA PORT DOWN
    38A8D4BB   0713171610 I H ent0           HEA PORT DOWN
    38A8D4BB   0713165310 I H ent0           HEA PORT DOWN
    38A8D4BB   0713162710 I H ent0           HEA PORT DOWN
    Page Space      Physical Volume   Volume Group    Size %Used Active  Auto  Type
    paging00        hdisk2            rootvg        3072MB    10   yes   yes    lv
    hd6             hdisk3            rootvg        3072MB    10   yes   yes    lv

    p6550b2/var/snlog#lsps -a
    调页空间        物理卷           卷组         大小  %已使用  活动    自动  类型
    paging00        hdisk2            rootvg        3072MB    11    是    是    lv
    hd6             hdisk3            rootvg        3072MB    11    是    是    lv


    Linux/Unix 下设置应用程序定时自动重启(以resin为例)

    http://darkmasky.iteye.com/blog/224906

    1.首先, 由于 resin 自动重启后不会主动加载Java环境变量,

            所以需要编辑resin/bin目录下的 httpd.sh, 配置其独立运行环境。

    # vi httpd.sh         (注:首行注入以下内容) 

    export JAVA_HOME=......   
    export CLASSPATH=......      

    export PATH=......  

    2.然后, 编辑 crontab, 配置定时器。

    # crontab -e       (注入如下内容)

    0   1   *   *   *   /usr/local/resin/bin/httpd.sh   restart

    (每天凌晨1点自动重启)

    (注意 , 其中配置的时间以 # clock --show 显示时间作为参照物)

    3. 保存后,检查配置内容

    # crontab -l      

    4. 重启 /etc/init.d/ 目录下的 crond, 使配置生效

    # crond stop

    # crond start

    # crond restart

    5. 查看 cron日志

    # ls /var/log/cron*    (浏览日志文件)

    # cat /var/log/cron    (查看详细内容)  

    关于 crontab 的详解及示例,请参照:

    http://darkma.iteye.com/admin/blogs/224891

    end

  • 相关阅读:
    第07组 Beta冲刺(3/5)
    第07组 Beta冲刺(2/5)
    第07组 Beta冲刺(1/5)
    第07组 Alpha事后诸葛亮
    第07组 Alpha冲刺(6/6)
    第07组 Alpha冲刺(5/6)
    【置顶】CSP/NOIP 2020 (高二游记)
    【置顶】CSP/S 2019退役祭
    【置顶】一些关于停课的感想(随时更新,连着前一篇博客)11/11~11/15
    【置顶】我的2018~2019信息学之路
  • 原文地址:https://www.cnblogs.com/lindows/p/14390348.html
Copyright © 2011-2022 走看看