1. 程式人生 > >Linux shell 指令碼新增環境變數,監控web 服務是否正常

Linux shell 指令碼新增環境變數,監控web 服務是否正常

例項1:寫shell指令碼定義函式設定環境變數路徑
prepend() {
[ -d “$2” ] && eval $1="$2${$1:+’:’$$1}" && export $1
}

執行 prepend PATH /opt/myapp/bin
說明:指令碼解釋

1、執行 prepend PATH /opt/myapp/bin
函式名 第一引數$1 第二引數$2

2、程式的執行過程
[ -d “$2” ] 判斷第二引數$2是否為目錄如果為真則執行 eval $1="$2${$1:+’:’$$1}"
&& 第一條件成立執行下一個

eval $1="$2${$1:+’:’$ 1

} e v a l
" : "   1\} eval 命令是重新運算求出引數的內容 是將第一的引數所制定值的變數設定成第二個引數的值加上" : " (路徑分隔符;隨後再跟上首個引數的原始值 \ 是轉義特殊字元 如“
{$1:+’:’$$1} 判斷$1 為空則使用$$1

傳參後的結果
eval
PATH = " /opt/myapp/bin KaTeX parse error: Expected '}', got 'EOF' at end of input: {PATH:+':'PATH}"
PATH

例項2:監控web 服務是否正常
#!/bin/sh
if [ "netstat -lnt | grep 80|awk -F "[ :]+" "] '{print $5}' " = “80”]
#if [ lsof -i tcp:80|wc -l -gt 0 ] 本地監控
#if [ ps -ef |grep httpd|grep -v grep|wc -l -gt 0 ]
#if [ ss -lntup|grep httpd| wc -l -gt 0 ]

wget -T 10 -q --spider http://192.168.0.101 >&/dev/null
curl -s http://192.168.0.101>/dev/null

if [ $? -eq 0 ]
echo “httpd is running”
else
echo “httpd is not running”
/app/apache/bin/apachect1 start
fi
要點說明:
curl 命令 curl是一個利用URL規則在命令列下工作的檔案傳輸工具;命令列訪問網站
引數
-s/–silent 靜音模式。就是不顯示錯誤和進度

wget 命令inux wget是一個下載檔案的工具,它用在命令列下
-T,–timeout=SECONDS 設定超時時間 預設是秒
-q,–quiet 不顯示輸出資訊
–spider 測試是否能正常訪問
-t, --tries=NUMBER 設定最大嘗試連結次數(0 表示無限制).