solaris下使用crontab

时程表的格式如下 :
f1 f2 f3 f4 f5 program

其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推

使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。
例子 :

每月每天每小时的第 0 分钟执行一次 /bin/ls :
0 7 * * * /bin/ls
1.由sh 切换到 bash
$/usr/bin/bash
2.查看环境变量
echo $EDITOR
如果未设置下面的环境变量,定义系统环境变量EDITOR
# export EDITOR=vi
3.编辑crontab
$crontab –e (编辑当前用户的cron文件)
$crontab –e username    (编辑指定用户的cron文件)
需要注意的是crontab有两个文件来决定你是否可以使用crontab命令:
/etc/cron.d/cron.allow 和
/etc/cron.d/cron.deny
1:crontab 使用方法:
 crontab [ -e | -l | -r ] 文件名
-e:编辑任务
-l:显示任务信息
-r:删除定时执行任务信息


2:crontab中处理的文件格式为
分钟 小时 日期 月 星期 执行的文件名
*代表所有条件
5 * * * * /home/oracle/monitorjob.sh
代表每个小时的5分钟时执行/home/oracle/monitorjob.sh文件

3:对于sql等需要在特定的环境变量下运行的命令,在执行文件中必须列出。
如在oracle下执行sqlplus,必须按以下格式编写:
$ cat execsql
ORACLE_HOME=/ora815;export ORACLE_HOME
ORACLE_OWNER=oracle;export ORACLE_OWNER
ORACLE_SID=ora815;export ORACLE_SID
ORACLE_BASE=/ora815/app/oralce;export ORACLE_BASE
LD_LIBRARY_PATH=$ORACLE_HOME/lib;export LD_LIBRARY_PATH
PATH=$PATH:$ORACLE_HOME/bin:$LD_LIBRARY_PATH;export PATH
NLS_LANG=AMERICAN_AMERICA.ZHS16CGB231280;export NLS_LANG
/ora815/bin/sqlplus test1/test1 @test1.ext
(执行@test1.ext文件,数据库的用户名/密码为test1/test1)

其中要求execsql为可执行的程序
$ ls -al execsql
-rwxr-xr-x 1 oracle dba 374 Oct 07 15:17 execsql


编辑内容如下,并准备该脚本。
0 * * * * /export/home/oracle/perfstat.sh >> /export/home/oracle/perfstat.log 2>&1
脚本perfstat.sh 如下
#!/usr/bin/sh
. /export/home/oracle/.profile
sqlplus perfstat/perfstat<<EOF
exec statspack.snap;
EOF
那是由于crontab执行时与在用户下执行的区别是:
crontab执行时没有系统的环境设置的,也就是说不会帮你执行. .profile;
而在用户下执行,用户登陆时会自动执行. .profile。

所以如果达到相同效果,可以在show.sh中增加. .profile(当然了,别忘了对.profile使用绝对路径)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值