在linux有多种方式可以实现定时运行使用最灵活的应该是crontab
在使用crontab必须特别注意环境变量问题在此以执行oracle的sqlplus为例
说明crontab的使用方法
crontab 使用方法
crontab [ e | l | r ] 文件名
e:编辑任务
l:显示任务信息
r:删除定时执行任务信息
crontab中处理的文件格式为
分钟 小时 日期 月 星期 执行的文件名
*代表所有条件
* * * * rem /home/oracle/execsql
代表每个小时的分钟时执行/home/oracle/execsql文件
对于sql等需要在特定的环境变量下运行的命令在执行文件中必须列出
如在oracle下执行sqlplus必须按以下格式编写
$ cat execsql
ORACLE_HOME=/ora;export ORACLE_HOME
ORACLE_OWNER=oracle;export ORACLE_OWNER
ORACLE_SID=ora;export ORACLE_SID
ORACLE_BASE=/ora/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_AMERICAZHSCGB;export NLS_LANG
/ora/bin/sqlplus test/test @testext
(执行@testext文件数据库的用户名/密码为test/test)
其中要求execsql为可执行的程序
$ ls al execsql
rwxrxrx oracle dba Oct : execsql