[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
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
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |