[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/usr/share/se3/sbin/ -> testMySQL.sh (source)

   1  #!/bin/bash
   2  #
   3  ## $Id: testMySQL.sh 6654 2011-11-27 16:35:54Z dbo $ ##
   4  #
   5  ##### Test la base MySQL #####
   6  #
   7  
   8  LISTE_BASE="se3db ocsweb"
   9  FICHIER_RESULT="/root/base_mysql.test"
  10      
  11      
  12  # Récupération des paramètres mysql
  13  #
  14  if [ "$1" = "-h" -o "$1" = "-help" -o "$1" = "-c" -o "$1" = "-v" -o "$1" = "" ]
  15  then
  16      if [ "$1" = "--help" -o "$1" = "-h" ]
  17      then
  18          echo "Test la base MySQL"
  19          echo "Usage : ./testMySQL.sh -[option] (une seule option de possible à la fois)"
  20          echo "-v verbose"
  21          echo "-c pemet de générer dans $FICHIER_RESULT une image de la base de donnée."
  22          echo "N'utiliser cette option qu'en connaissance de cause"
  23          exit
  24      fi    
  25      
  26      if [ "$1" = "-c" ]
  27      then
  28             if [ -e $FICHIER_RESULT ]
  29             then
  30                 rm -f $FICHIER_RESULT
  31              touch $FICHIER_RESULT
  32             else     
  33              touch $FICHIER_RESULT
  34             fi    
  35          for i in $LISTE_BASE 
  36          do    
  37              cd /var/lib/mysql/$i
  38                  A=`find * -iname "*.MYD" | cut -d. -f1`
  39                  for j in $A
  40              do
  41                  ROWS=""
  42                  ROWS=`mysql -D $i -e "show fields from $j" | wc -l`
  43                  ROWS=$(($ROWS - 1))
  44                  echo "$i $j $ROWS" >> $FICHIER_RESULT
  45              done
  46          done    
  47          exit
  48      fi
  49              
  50      # Test le compte de connexion pour les pages php
  51      if [ -e /var/www/se3/includes/config.inc.php ]
  52      then
  53              dbhost=`cat /var/www/se3/includes/config.inc.php | grep "dbhost=" | cut -d = -f 2 |cut -d \" -f 2`
  54              dbname=`cat /var/www/se3/includes/config.inc.php | grep "dbname=" | cut -d = -f 2 |cut -d \" -f 2`
  55              dbuser=`cat /var/www/se3/includes/config.inc.php | grep "dbuser=" | cut -d = -f 2 |cut -d \" -f 2`
  56              dbpass=`cat /var/www/se3/includes/config.inc.php | grep "dbpass=" | cut -d = -f 2 |cut -d \" -f 2`
  57      
  58          # test la connexion avec ce compte
  59          CONNEX_SE3DB=`mysqlshow $dbname -u $dbuser -p$dbpass | grep params > /dev/null && echo 1`
  60          if [ "$CONNEX_SE3DB" = "1" ]
  61          then
  62              if [ "$1" = "-v" ]
  63              then
  64                  echo "Connexion avec le compte de l'interface --> Ok"
  65              fi
  66          else
  67              if [ "$1" = "1" ]
  68              then
  69                  echo "Connexion avec le compte de l'interface --> Failed"
  70              fi
  71              echo "Failed"
  72              exit 1
  73          fi    
  74              
  75      else
  76          if [ "$1" = "-v" ]
  77          then
  78                  echo "Fichier de conf  pour php inaccessible"
  79          fi
  80          echo "Failed"
  81              exit 1
  82      fi
  83      
  84      # Vérifie fichier my.cnf
  85      if [ -e /root/.my.cnf ]
  86      then
  87          dbuser_my=`cat /root/.my.cnf | grep user= | cut -d= -f2`
  88          dbpass_my=`cat /root/.my.cnf | grep password= | cut -d= -f2`
  89          # essaye de se connecter
  90          CONNEX_mysql=`mysqlshow -u $dbuser_my -p$dbpass_my | grep mysql  > /dev/null && echo 1`
  91          if [ "$CONNEX_mysql" = "1" ]
  92          then
  93            if [ "$1" = "-v" ]
  94            then
  95              echo "Connexion avec le compte root --> Ok"
  96            fi    
  97              # Si ok on peut tester la présence de toutes les bases
  98              for i in  se3db # $LISTE_BASE  => ocs non obligatoire!
  99              do
 100                  CONNEX_BD=`mysqlshow -u $dbuser_my -p$dbpass_my | grep $i > /dev/null && echo 1`
 101                  
 102                  if [ "$CONNEX_BD" = "1" ]
 103                  then
 104                     if [ "$1" = "-v" ]
 105                     then
 106                      echo "Base $i  --> Ok"
 107                     fi    
 108                  else 
 109                     if [ "$1" = "-v" ]
 110                     then
 111                      echo "Base $i --> Failed"
 112                     fi
 113                     echo "Failed"
 114                        exit 1
 115                  fi    
 116              done    
 117              
 118              # test complet à partir du fichier si celui-ci existe     
 119              if [ -e $FICHIER_RESULT ]
 120              then
 121                     if [ "$1" = "-v" ]
 122                     then
 123                         echo "Fichier de comparaison existe"
 124                     fi    
 125                  cat $FICHIER_RESULT | while read L
 126                  do
 127                      CONNEX=""
 128                      BASE=`echo $L | cut -d" " -f1`
 129                      TABLE=`echo $L | cut -d" " -f2`
 130                      CHAMP=`echo $L | cut -d" " -f3`
 131                      CONNEX=`mysql -u $dbuser_my -p$dbpass_my -D $BASE -e "select count(*) from $TABLE" 2>/dev/null | grep -v ERROR >/dev/null && echo 1`
 132                      if [ "$CONNEX" = "1" ]
 133                      then
 134                          # On peut tester le nombre de champs
 135                          ROWS=""
 136                          ROWS=`mysql -u $dbuser_my -p$dbpass_my -D $BASE -e "show fields from $TABLE" | wc -l`
 137                          ROWS=$(($ROWS - 1))
 138                          if [ "$ROWS" != "$CHAMP" ]
 139                          then
 140                             if [ "$1" = "-v" ]
 141                             then
 142                              echo "Nombre de champs attendu $CHAMP dans la table $TABLE ($BASE), présent $ROWS --> Failed"
 143                             fi
 144                             exit 1
 145                          fi    
 146                      else
 147                              if [ "$1" = "-v" ]
 148                              then
 149                              echo "Connexion à la table $TABLE --> Failed"
 150                          fi
 151                          exit 1
 152                      fi    
 153                  done
 154                  if [ "$?" = "1" ]
 155                  then
 156                      echo "Failed"
 157                      exit 1
 158                  fi    
 159              else 
 160                  if [ "$1" = "-v" ]
 161                  then
 162                      echo "Vous ne possédez pas le fichier de référence"
 163                      echo "La comparaison avec ce que votre base devrait être ne peut être réalisée"
 164                  fi    
 165              fi    
 166          else
 167              if [ "$1" = "-v" ]
 168              then
 169                  echo "Connexion au serveur MySQL impossible avec le mot de passe -> Failed"
 170              fi
 171              echo "Failed"
 172              exit 1
 173          fi
 174  
 175          
 176      else
 177          if [ "$1" = "-v" ]
 178          then
 179              echo "Erreur my.cnf inexistant"
 180          fi
 181          echo "Failed"
 182          exit 1
 183      fi
 184  
 185      dpkg -l | grep -q se3-ocs && ocs="yes"
 186      if [ "$ocs" == "yes" ]
 187      then
 188  
 189  
 190          # Test le compte de connexion pour les pages php
 191          if [ "$1" = "-v" ]
 192          then
 193              echo "Test le mot de passe pour l'inventaire"
 194          fi    
 195          if [ -e /var/www/se3/includes/dbconfig.inc.php ]
 196          then
 197  
 198  
 199              dbhostinvent="localhost"
 200                  dbnameinvent="ocsweb"
 201                  dbuserinvent="ocs"
 202                  dbpassinvent=`cat /var/www/se3/includes/dbconfig.inc.php | grep "PSWD_BASE" | cut -d\" -f4`
 203              # test la connexion avec ce compte
 204              CONNEX_INVENT=`mysqlshow $dbnameinvent -u $dbuserinvent -p$dbpassinvent | grep hardware > /dev/null && echo 1`
 205              if [ "$CONNEX_INVENT" = "1" ]
 206              then
 207                  if [ "$1" = "-v" ]
 208                  then
 209                      echo "Connexion avec le compte de l'interface inventaire --> Ok"
 210                  fi
 211              else
 212                  if [ "$1" = "1" ]
 213                  then
 214                      echo "Connexion avec le compte de l'interface inventaire --> Failed"
 215                  fi
 216                  echo "Failed"
 217                  exit 1
 218              fi    
 219          fi
 220      fi
 221  
 222  
 223  else
 224      echo "Usage : ./testMySQL.sh -h pour l'aide"
 225      exit
 226  fi    
 227  


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1