48.檢測服務狀態腳本

思路:rpm -q 判斷軟件包是否安裝,pgrep判斷服務是否啓動
#!/bin/bash
#檢測安裝函數
check_install() {
        rpm -q $1 &>/dev/null
        if [ $? -eq 0 ];then#判斷是否已經安裝軟件包
                echo "$1 software is already installed,checking..."
        else
                while :
                do
                read -p "$1 not installed,do you want to install it ?(y or n)" n
                case $n in
                        y)
                        echo "installing..."#安裝提示
                        yum install -y $1 &>/dev/null#不顯示輸出信息
                        if [ $? -eq 0 ];then
                                echo "$1 installation successful !"
                                break#安裝成功退出循環
                        else
                                echo "No such $1 software !"
                                exit 1#無軟件包退出腳本
                        fi
                        ;;
                        n)
                        echo "bye!"
                        exit 1#不安裝退出腳本
                        ;;
                        *)
                        echo "please input y or n. "#提示輸入y 或者n
                        continue
                        ;;
                esac
                done
        fi

}
#檢測服務啓動函數
server_start() {
        case $1 in
             y)
             echo "starting..."#啓動提示
             service $2 start &> /dev/null#不顯示輸出信息
             if [ $? -eq 0 ];then
                echo "$2 service started successfully! "        
                break#啓動成功退出循環
             else
                echo "$2 service started failed!"
                break#啓動失敗退出循環
             fi
             ;;
             n)
             echo "bye!"
             exit 2#不啓動退出腳本
             ;;
             *)
             echo "please input y or n. "#提示輸入y 或者n
             continue
             ;;
        esac

}
if [ $# -ne 1 ];then #判斷輸入參數是否爲1
        echo "please input a parameter!"
        exit
fi
check_install $1#調用函數
if [ $? -eq 0 ];then#判斷安裝是否成功
        if ! pgrep $1 2> /dev/null;then
        while :
        do
        read -p "$1 server is not started,do you want to start it ? (y or n)" ser
        server_start $ser $1#調用函數
        done
        else
        echo "$1 service is already started!"               
        fi
fi
以httpd爲例,使用:sh server_check.sh httpd
相關文章
相關標籤/搜索