2013-02-25 247 views
0

可以有人幫忙/糾正我寫一個shell腳本,這裏是我想要做的網頁獲取網頁的內容,並比較

  • 獲取內容
  • 比較內容
  • 如果內容相同則返回0
  • 如果不返回2

這裏是我的代碼

for cluster in $CLUSTERS 
do 
    for applis in $(eval echo \$${cluster}_APPLIS) 
    do 
     CONTENT=$(wget -q -O - "http://$server/$applis") 
     if [ "$CONTENT" -eq 1 ] 
     then 
     exit_code=0 
     else 
     exit_code=2 
     fi 
    done 
done 

[[ -z "$error_server" ]] && error_server="aucune" 

case $exit_code in 
    "2") 
      echo "CRITICAL - App Version Mismatch" 
      exit 2 
      ;; 
    "1") 
      echo "WARNING - instance(s) indisponible(s)" 
      exit 1 
      ;; 
    "0") 
      echo "OK - All apps have the save version" 
      exit 0 
      ;; 
    *) 
      echo "CRITICAL - there's something wrong with this script ..." 
      exit 2 
      ;; 
esac 

任何幫助或建議,將不勝感激

問候 的Fab

+0

遺憾的錯誤標籤,我已經把它換成正確的一個 – user2106999 2013-02-25 13:43:05

回答

0

您可以使用diff來比較文件的兩個版本。第一個變量用於獲取網頁的第一個版本。我不確定是首先應該在第一個循環內還是外部初始化。

first=1 
for cluster in $CLUSTERS 
do 
    for applis in $(eval echo \$${cluster}_APPLIS) 
    do 
     if [ $first -eq 1 ];then 
      first=0 
      PREV_CONTENT=$(wget -q -O - "http://$server/$applis") 
     else 
      CONTENT=$(wget -q -O - "http://$server/$applis") 
      diff $PREV_CONTENT $CONTENT 
      PREV_CONTENT=$CONTENT 
      result=$? 
     fi 
     if [ "$result" -eq 0 ] 
     then 
      exit_code=0 
     else 
      exit_code=2 
     fi 
    done 

+0

感謝你快速回復 我想我是不是在我以前的帖子 很清楚其實我們有4個Web服務器(羣集)主機相同的網頁 我需要做的是將我的所有服務器的網頁內容放入一個變量,並檢查它們是否匹配 如果是返回0或返回2 – user2106999 2013-02-25 15:58:26

+0

編輯腳本 - 不確定 applis in $(eval echo \ $$ {cluster} _APPLIS) 是for。可能它可以被簡化。 – suspectus 2013-02-25 16:47:30