linux的shell腳本基礎寫法xxx.sh

#!/bin/sh
#定義一個目錄的字符串
workDir="/home/jiuddata/" 
#判斷是否存在此目錄,存在就創建一個
if [ ! -x "$workDir" ]; then 
    mkdir "$workDir"
fi
##### 清空日誌 刪除之前的存日誌的目錄
rm -rf $workDir/log/ 
mkdir $workDir/log/
#進入到目錄
cd $workDir  
#定義一個方法 方法名稱爲start_tomcat
start_tomcat(){ 
	#方法中順便打印一句字符串
    echo "starting tomacat....."
	#執行啓動tomcat 並把日誌放到指定app.log的文件中去
	#2>&1 2就是標準錯誤,1是標準輸出,那麼這條命令相當於把標準錯誤重定向到標準輸出麼
    nohup /opt/tomcat/bin/catalina.sh start > $workDir/log/tomcat.log 2>&1 &
}
#定義一個方法start_backend
start_backend(){
	#方法中順便打印一句字符串,表示正在執行這個方法
    echo "starting backend....."
	#執行啓動springBoot的jar命令 後臺運行 並把日誌放到指定文件夾中去
	#2>&1 2就是標準錯誤,1是標準輸出,那麼這條命令相當於把標準錯誤重定向到標準輸出麼
    nohup java -jar $workDir/backend_app/wiki-backend-web.jar > $workDir/log/app.log 2>&1 &
}
#定義一個方法pid_health_check $1是這個方法的參數,其他地方調用此方法傳入進來
pid_health_check(){
	#定義一個linux的命令字符串 $1是這個方法的參數,其他地方調用此方法傳入進來
	#這個命令解釋: 搜索linux中的進程 並且過濾掉-帶grep的那條 
    process_cnt=`ps -ef | grep $1 | grep -v grep | wc -l`
    #表示執行上面定義的process_cnt命令
	echo $process_cnt
	#返回值-上面命令查詢出來的日誌的條數
    return $?
}
#執行上面定義的方法
start_tomcat
#執行上面定義的方法
start_backend

#死循環 表示 1>0嗎 執行循環中的內容
while [[ 1 -gt 0 ]]
do
	#方法中順便打印一句字符串
    echo "check healthy of tomcat...."
	#定義一個process_cnt參數接收-調用process_cnt的方法返回的值,傳入(參數1-方法名,參數2-搜索的進程名稱)
    process_cnt=$(pid_health_check tomcat)
	#if判斷-調用pid_health_check方法返回值中日誌的條數小於1 表示此tomcat進程已經被停了 then中重新執行啓動方法
    if [[ $process_cnt -lt 1 ]]
    then
        start_tomcat
    fi
    echo "check healthy of wiki-backend...."
    process_cnt=$(pid_health_check wiki-backend)
	#if判斷-調用pid_health_check方法返回值中日誌的條數小於1 表示此wiki-backend的jar進程已經被停了 then中重新執行start_backend啓動方法
    if [[ $process_cnt -lt 1 ]]
    then
        start_backend
    fi
	#表示等待1分鐘後重新執行死循環
    sleep 1m
done
#!/bin/sh
workDir="/home/jiuddata/" 
if [ ! -x "$workDir" ]; then 
    mkdir "$workDir"
fi
rm -rf $workDir/log/ 
mkdir $workDir/log/
cd $workDir  
start_tomcat(){
    echo "starting tomacat....."
    nohup /opt/tomcat/bin/catalina.sh start > $workDir/log/tomcat.log 2>&1 &
}
start_backend(){
    echo "starting backend....."
    nohup java -jar $workDir/backend_app/wiki-backend-web.jar > $workDir/log/app.log 2>&1 &
}
pid_health_check(){
    process_cnt=`ps -ef | grep $1 | grep -v grep | wc -l`
	echo $process_cnt
    return $?
}
start_tomcat
start_backend
while [[ 1 -gt 0 ]]
do
    echo "check healthy of tomcat...."
    process_cnt=$(pid_health_check tomcat)
    if [[ $process_cnt -lt 1 ]]
    then
        start_tomcat
    fi
    echo "check healthy of wiki-backend...."
    process_cnt=$(pid_health_check wiki-backend)
    if [[ $process_cnt -lt 1 ]]
    then
        start_backend
    fi
    sleep 1m
done

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章