/ Sylinx / crontab笔记

crontab笔记

2009-11-18 posted in [开发经验]

常用的命令

crontab -l
crontab -e 编辑crontab就是VI编辑,其每个任务格式如下:

minute hour day month dayofweek command 命令

minute — 分钟,从 0 到 59 之间的任何整数
hour — 小时,从 0 到 23 之间的任何整数
day — 日期,从 1 到 31 之间的任何整数(如果指定了月份,必须是该月份的有效日期)
month — 月份,从 1 到 12 之间的任何整数(或使用月份的英文简写如 jan、feb 等等)
dayofweek — 星期,从 0 到 7 之间的任何整数,这里的 0 或 7 代表星期日(或使用星期的英文简写如 sun、mon 等等)

在以上任何值中,星号(*)可以用来代表所有有效的值。譬如,月份值中的星号意味着在满足其它制约条件后每月都执行该命令。

整数间的短线(-)指定一个整数范围。譬如,1-4 意味着整数 1、2、3、4。

用逗号(,)隔开的一系列值指定一个列表。譬如,3, 4, 6, 8 标明这四个指定的整数。

几个脚本参:

* 2 * * * /u01/oracle/jobs/crm_timed_bussiness.sh
* 23 * * * /u01/oracle/jobs/crm_timed_bussiness.sh
* * * * * /u01/oracle/jobs/crm_timed_bussiness.sh

crm_timed_bussiness.sh

#setup oracle environment
dd=`date +"%Y%m%d"`
LOG="/u01/oracle/jobs/crm_timed_bussiness.log"
echo `date +'%Y-%m-%d %H:%M:%S`: BEGIN crm_timed_bussiness.sh ............
echo `date +'%Y-%m-%d %H:%M:%S`: BEGIN crm_timed_bussiness.sh ............ >>$LOG 2>&1
NLS_LANG=American_America.zhs16gbk
ORACLE_BASE=/u01/oracle/app/oracle
ORACLE_HOME=/u01/oracle/app/oracle/product/10.2.0/db
PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:/u01/bin:/usr/bin/X11:/sbin:.:/u01/oracle/app/oracle/product/10.2.0/db/bin:/u01/oracle/app/oracle/product/10.2.0/db/OPatch
 
export ORACLE_BASE ORACLE_HOME NLS_LANG PATH 
 
/u01/oracle/app/oracle/product/10.2.0/db/bin/sqlplus -s crm/crmkf123@gwkfdb @/u01/oracle/jobs/crm_timed_business.sql >>$LOG 2>&1
echo `date +'%Y-%m-%d %H:%M:%S`: END crm_timed_bussiness.sh ............
echo `date +'%Y-%m-%d %H:%M:%S`: END crm_timed_bussiness.sh ............ >>$LOG 2>&1