oracle使用者定時執行指令碼

2021-10-08 14:52:38 字數 1373 閱讀 9256

最近出於某種原因,重操舊業,處理下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目錄中,到指定時間執...