最近出於某種原因,重操舊業,處理下oracle 的定時任務,發現原來有些坑還是繞不過去,必須經過填平。還是帶著任務填坑效率高。
言歸正傳——
環境:centos7
oracle 11gr2
需求:作業系統內oracle使用者定時要執行sql語句,返回到乙個log檔案供其他程式讀取。
方法:使用crontab -e 編輯定時任務
呼叫乙個sh指令碼,執行目錄下的sql語句
* * * * * /usr/bin/sh /data/runchk.sh
sh語句
前提:oracle安裝完畢、變數設定正常,手工執行sql語句正常。
坑:oracle使用者下執行不了,沒有返回。
第一步,看有沒有crontab包
yum -y install crontabs
第二步,檢查crontab任務
crontab -e 新增一條任務
* * * * * echo 123 >> /data/testfile
每分鐘正常有輸出
第三步,檢查變數
oracle變數很多,cat /home/oracle/.bash_profile檔案,把內容貼到定時執行的sh指令碼前面。
無論是sh還是crontab 裡面的定時命令、甚至是sql裡面的路徑都要是絕對路徑為佳。
第四步,執行crontab有問題應該會有系統郵件
mail 命令後看最新的郵件號
可以看到報錯資訊
給出我的sh供參考
#!/bin/bash
path=
$path
:$home/.local/bin:$home/bin
path=
$path
:$home/.local/bin:$home/bin:/bin:/sbin
export path=
export oracle_base=/data/oracle
export oracle_home=
export oracle_sid=orcl
export oracle_term=xterm
export path=
$oracle_home/bin:/usr/sbin:$path
export ld_library_path=
$oracle_home/lib:/lib:/usr/lib
export lang=en_us
export nls_lang=american_america.zhs16gbk
sqlplus / as sysdba @/data/tablespace.sql
至此,坑已填平,出現我要的結果 Python 定時執行指令碼
import sys import os import datetime import time class argsdealwith def arg environment self,args filepath python path path for i in filepath filename...
linux定時執行指令碼
cron是乙個linux下的定時執行工具 cron是linux的內建服務,可以用以下的方法啟動 關閉這個服務 sbin service crond start 啟動服務 sbin service crond stop 關閉服務 sbin service crondrestart 重啟服務 sbin ...
Linux定時執行指令碼
在linux下的兩種定時執行任務的方法 at命令,以及crontab服務。1 at命令 假如我們只是想要讓特定任務執行一次,那麼,這時候就要用到at監控程式了。設定at命令很簡單,指示定執行的時間,那麼就會在哪個時候執行。at類似列印 程序,會把任務放到 var spool at目錄中,到指定時間執...