在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