在Linux,有多种方式可以实现定时运行,使用最灵活的应该是crontab,
在使用crontab必须非凡注重环境变量问题,在此以执行Oracle的sqlplus为例,
说明crontab的使用方法。
1:crontab 使用方法:
crontab [ -e -l -r ] 文件名
-e:编辑任务
-l:显示任务信息
-r:删除定时执行任务信息
2:crontab中处理的文件格式为
分钟 小时 日期 月 星期 执行的文件名
*代表所有条件
5 * * * * rem /home/oracle/execsql
代表每个小时的5分钟时执行/home/oracle/execsql文件
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