`

Unix + OS AIX Crontab

    博客分类:
  • OS
阅读更多

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

分享到:
评论

相关推荐

    源码zlog+cronolog+crontab+logroate

    zlog+cronolog+crontab+logrotate源码 如何交叉编译至下位机可参考我的文章: https://blog.csdn.net/u010505080/article/details/84819042

    使用Mutt+msmtp+crontab监控主机磁盘使用率并定时发送邮件通知.doc

    标题中的“使用Mutt+msmtp+crontab监控主机磁盘使用率并定时发送邮件通知”描述了一个Linux运维方案,它利用Mutt作为邮件客户端,msmtp作为SMTP发送代理,以及crontab来定期执行任务,监控服务器磁盘使用情况并在...

    Python + selenium + crontab实现每日定时自动打卡功能

    - **Crontab**:Unix/Linux系统中的一个工具,用于设置周期性的任务调度。 #### 三、准备工作 ##### 1. 安装Selenium库 ```bash sudo pip install selenium ``` ##### 2. 安装Chromedriver - **下载**:根据...

    aix crontab

    ### AIX Crontab 无法自动执行的问题及解决方法 #### 问题背景 在AIX系统中,用户可能会遇到crontab任务无法自动执行的情况。这种情况可能会对系统的自动化管理流程造成影响,因此需要及时排查并解决。根据提供的...

    OS + linux crontab / top / ntpdate / nmon

    标题 "OS + Linux crontab / top / ntpdate / nmon" 提及了四个重要的 Linux 系统管理和监控工具,这些工具对于任何系统管理员来说都是必不可少的。下面将详细介绍这些工具及其在Linux操作系统中的作用。 1. **...

    AIX上oracle备份策略(rman+crontab)

    为了自动化这个过程,我们可以利用crontab,这是一个Unix和Linux系统中的任务调度命令。通过编辑用户的crontab文件,可以设置定期执行RMAN备份。例如,每周一凌晨1点执行级别0全备,每天凌晨2点执行级别1增量备: `...

    Unix Crontab

    在Unix和类Unix系统中,`crontab`(cron table)是一个强大的工具,用于自动化周期性的任务调度。它是Unix时间调度程序`cron`的一部分,允许用户定义一系列定时任务,这些任务会在特定的时间间隔自动执行。`crontab`...

    LINUX与UNIX+SHELL编程指南

    3.1.4 创建一个新的crontab文件 24 3.1.5 列出crontab文件 24 3.1.6 编辑crontab文件 24 3.1.7 删除crontab文件 25 3.1.8 恢复丢失的crontab文件 25 3.2 at命令 25 3.2.1 使用at命令提交命令或脚本 26 3.2.2 列出所...

    unix C语言crontab、makefile资料

    【Unix C语言crontab、makefile资料】 在Unix操作系统中,C语言是核心的编程语言之一,而crontab和makefile则是开发者在日常工作中不可或缺的工具。这两个概念是Unix/Linux开发环境中效率和自动化的重要组成部分。 ...

    unix Crontab实例.

    ### Unix Crontab 实例详解 Crontab是Unix系统中的一个强大工具,用于调度周期性执行的任务。本文将深入解析Crontab的工作原理、配置方法以及如何利用它来自动化日常任务。 #### Crontab的基本概念与作用 Crontab...

    aix下crontab命令.rar

    在AIX操作系统中,`crontab`命令是用于管理和控制定时任务的工具。它允许用户根据预定义的时间间隔执行脚本或命令,这在系统维护、数据备份、日志清理等自动化任务中非常常见。下面我们将深入探讨`crontab`命令的...

    linux使用mysqldump+expect+crontab实现mysql周期冷备份思路详解

    我们使用过mysqldump都知道,使用该命令后,需要我们手动输入 mysql的密码,那么我们就不能够直接在crontab中使用mysqldump实现周期备份。其实我们可以使用expect脚本自动输入密码,从而实现真正的周期备份。如果你...

    unix AIX 环境下 exp 备份 Oracle 分区表实例

    在Unix AIX环境下进行Oracle分区表的备份操作是IT领域中一项重要的技能,尤其是在处理大量数据和维护系统稳定性时。本文将深入解析如何在Unix AIX环境下使用exp工具备份Oracle分区表,包括环境配置、备份策略及恢复...

    Linxu、AIX系统下Crontab任务切换脚本.pdf

    Crontab是Unix类系统中用于自动化任务调度的一个强大工具,它允许用户按照预设的时间间隔运行命令或脚本。 1. **Crontab基础** - Crontab允许用户定义定时任务,格式包括分钟、小时、日期、月份和星期,以决定何时...

    Linux应急响应——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)下载地址.txt

    Linux应急响应——SSH暴力破解+crontab隐藏后门——事件复现(含靶场环境)下载地址,真实有效,亲测可用。

    Linxu、AIX系统下Crontab任务切换脚本.docx

    Crontab是Linux和AIX等类Unix系统中的一个调度工具,用于自动化周期性的任务。在大型系统环境中,可能有多个用户需要运行各自的定时任务,这时就需要一种机制来方便地在不同用户间切换这些任务。本文档介绍的`ha_...

    利用rsync+crontab实现Linux的定时增量备份

    5. **自动化备份**:结合crontab工具,可以设置定时任务,让rsync定期执行备份操作,实现自动化增量备份。 【总结】 rsync是一款强大的文件同步和备份工具,它的灵活性和效率使其成为Linux环境中不可或缺的一部分...

Global site tag (gtag.js) - Google Analytics