2014-02-19 102 views
0

我正在編寫一個腳本來檢查sybase是否在我的服務器上運行。如果它沒有運行,我想啓動服務。如果它正在運行,我想停止sybase iq。 請幫助我做同樣的事情。shell腳本來檢查sybase iq狀態

我寫的邏輯是:

if(sybaseiq = active) 
    then 
    stop_iq 

else 
    start_iq ".cfg" ".db" 

下面是我對internet.But發現我不能夠了解他們在做什麼,那裏的代碼。請回答我的解釋。

isql -U${USERNAME} -P${PASSWORD} -S${SQL_SERVER} -w1000 << ! > ${LOG_FILE} 
    exit 
    ! 
    if [[ $? != 0 ]] 
    then 
     msg="`date` ${SQL_SERVER} problem. ${SQL_SERVER} on ${HOST} is down or cannot be accessed" 
    cat ${LOG_FILE}|/usr/bin/mailx -s "${msg}" ${SUPPORT} 
    } 
    exit 1 
    fi 

感謝很多提前

回答

1

劇本是相當簡單的

首先是腳本通過ISQL登錄到服務器上,將輸出重定向到一個日誌文件。如果能夠連接,則會發出感嘆號之間的所有命令,在這種情況下爲exit

接下來,if語句檢查上次運行的命令$?的錯誤狀態。 0表示沒有錯誤,其他的表示錯誤。因此,如果錯誤不是0,那麼創建一條消息,然後將該消息以及日誌文件發送給某人。

您必須在腳本的某處設置$USERNAME, $PASSWORD, $SQL_SERVER, $LOG_FILE, $HOST and $SUPPORT的值。

如果你不熟悉shell腳本,我會建議你閱讀一下。這很容易進入,但它們對於管理* nix系統非常強大。