0

誰かがシェルスクリプトを書くのを手伝って/訂正することができますか、これが私がやろうとしていることです

  • Webページのコンテンツを取得する
  • コンテンツを比較する
  • 内容が同じ場合は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

ヘルプや提案をいただければ幸いです

よろしくファブ

4

1 に答える 1

0

diff を使用して、ファイルの 2 つのバージョンを比較できます。最初の変数は、Web ページの最初のバージョンを取得するために使用されます。first を最初のループの内側で初期化する必要があるのか​​、外側で初期化する必要があるのか​​ わかりません。

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

終わり

于 2013-02-25T14:37:51.297 に答える