2012年8月17日 星期五

如何在排程crontab中執行informix dbaccess指令


作業系統 AIX 5.3

原本把這shell寫成可執行檔(xxx.sh)是可以執行並且正常輸出
結果放在排程(crontab)裡就無法輸出執行結果
氣死我了
google了很久,才知道在排程中執行informix dbaccess指令需要一併設定環境變數
在排程中是吃不到informix環境變數的,所以crontab裡的job就會失敗
dbaccess這個指令也加上絕對路徑來下

最後改好能順利放在crontab的程式(xxx.sh)長這樣:
=============================

#!/bin/ksh
./.profile
INFORMIXSERVER=test
export INFORMIXSERVER
INFORMIXDIR=/usr/informix
export INFORMIXDIR
ONCONFIG=/usr/informix/etc/onconfig
export ONCONFIG


echo "***** `date '+%m/%d %H:%M:%S'`  *****" >> /home/informix/checkuser.log
/usr/informix/bin/dbaccess  test /home/informix/cu.sql

=============================
(寫得不好請見諒 因為我很菜 也是copy網路來改 只求能跑 不求精美)

上面的環境變數的值,記得改成自家的

最重要的一行彩色字,簡單說明一下:

/usr/informix/bin/dbaccess →加了絕對路徑就無敵的dbaccess
test          →DB名稱
/home/informix/cu.sql →這是我要執行的sql查詢句,看倌們可以任意替換路徑和檔名


註:

研究兩三天,最後打成網誌就這麼一丁點

真他奶奶的