2013-02-25 249 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