[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 #!/bin/bash 2 3 # Script destiné à restaurer une sauvegarde de l'annuaire LDAP. 4 # Auteur: Stephane Boireau 5 # Dernière modification: 22/01/2008 6 7 #Couleurs 8 COLTITRE="\033[1;35m" # Rose 9 COLPARTIE="\033[1;34m" # Bleu 10 11 COLTXT="\033[0;37m" # Gris 12 COLCHOIX="\033[1;33m" # Jaune 13 COLDEFAUT="\033[0;33m" # Brun-jaune 14 COLSAISIE="\033[1;32m" # Vert 15 16 COLCMD="\033[1;37m" # Blanc 17 18 COLERREUR="\033[1;31m" # Rouge 19 COLINFO="\033[0;36m" # Cyan 20 21 ERREUR() 22 { 23 echo -e "$COLERREUR" 24 echo "ERREUR!" 25 echo -e "$1" 26 echo -e "$COLTXT" 27 exit 0 28 } 29 30 POURSUIVRE() 31 { 32 REPONSE="" 33 while [ "$REPONSE" != "o" -a "$REPONSE" != "n" ] 34 do 35 echo -e "$COLTXT" 36 echo -e "Peut-on poursuivre? ($COLCHOIX}o/n$COLTXT}) $COLSAISIE\c" 37 read REPONSE 38 done 39 40 if [ "$REPONSE" != "o" ]; then 41 ERREUR "Abandon!" 42 fi 43 } 44 45 POURSUIVRE_OU_CORRIGER() 46 { 47 REPONSE="" 48 while [ "$REPONSE" != "1" -a "$REPONSE" != "2" ] 49 do 50 if [ ! -z "$1" ]; then 51 echo -e "$COLTXT" 52 echo -e "Peut-on poursuivre ($COLCHOIX}1$COLTXT}) ou voulez-vous corriger ($COLCHOIX}2$COLTXT}) ? [$COLDEFAUT}$1}$COLTXT}] $COLSAISIE\c" 53 read REPONSE 54 55 if [ -z "$REPONSE" ]; then 56 REPONSE="$1" 57 fi 58 else 59 echo -e "$COLTXT" 60 echo -e "Peut-on poursuivre ($COLCHOIX}1$COLTXT}) ou voulez-vous corriger ($COLCHOIX}2$COLTXT}) ? $COLSAISIE\c" 61 read REPONSE 62 fi 63 done 64 } 65 66 . /usr/share/se3/includes/config.inc.sh -lm 67 68 BASEDN="$ldap_base_dn" 69 ADMINRDN="$adminRdn" 70 ADMINPW="$adminPw" 71 PEOPLERDN="$peopleRdn" 72 GROUPSRDN="$groupsRdn" 73 RIGHTSRDN="$rightsRdn" 74 75 PEOPLER=`echo $PEOPLERDN |cut -d = -f 2` 76 RIGHTSR=`echo $RIGHTSRDN |cut -d = -f 2` 77 GROUPSR=`echo $GROUPSRDN |cut -d = -f 2` 78 79 80 81 dossier=/var/se3/save/ldap 82 mkdir -p $dossier} 83 84 ladate=$(date "+%Y%m%d.%H%M%S") 85 86 # Sauvegarde préalable 87 echo -e "$COLTXT" 88 echo "Sauvegarde préalable de l'annuaire dans son état actuel..." 89 echo -e "$COLCMD\c" 90 ldapsearch -xLLL -D "$ADMINRDN,$BASEDN" -w $ADMINPW > $dossier/svg_$ladate}.ldif 91 92 if [ "$?" = "0" ]; then 93 echo -e "$COLTXT" 94 echo "Sauvegarde réussie." 95 else 96 echo -e "$COLERREUR" 97 echo "Echec de la sauvegarde préalable." 98 echo "Il n'est pas très raisonnable de poursuivre sans disposer" 99 echo "d'une sauvegarde récente." 100 101 REPONSE="" 102 while [ "$REPONSE" != "o" -a "$REPONSE" != "n" ] 103 do 104 echo -e "$COLTXT" 105 echo -e "Voulez-vous continuer néanmoins? ($COLCHOIX}o/n$COLTXT}) $COLSAISIE\c" 106 read REPONSE 107 done 108 109 if [ "$REPONSE" = "n" ]; then 110 echo -e "$COLERREUR" 111 echo "Abandon." 112 echo -e "$COLTXT" 113 exit 114 else 115 REPONSE="" 116 while [ "$REPONSE" != "o" -a "$REPONSE" != "n" ] 117 do 118 echo -e "$COLTXT" 119 echo -e "Etes vous sûr de vouloir continuer? ($COLCHOIX}o/n$COLTXT}) $COLSAISIE\c" 120 read REPONSE 121 done 122 fi 123 124 if [ "$REPONSE" = "n" ]; then 125 echo -e "$COLERREUR" 126 echo "Abandon." 127 echo -e "$COLTXT" 128 exit 129 fi 130 fi 131 132 echo -e "$COLTXT" 133 echo "Choix de la sauvegarde à restaurer" 134 cd $dossier 135 echo -e "Les sauvegardes présentes dans le dossier $COLINFO}$dossier}$COLTXT} sont:" 136 echo -e "$COLCMD\c" 137 ls -lht *.ldif 138 139 echo -e "$COLTXT" 140 echo "Vous pouvez aussi choisir un fichier LDIF situé" 141 echo "ailleurs dans l'aborescence." 142 143 echo -e "$COLTXT" 144 echo "Quelle sauvegarde souhaitez-vous restaurer?" 145 146 REPONSE="" 147 while [ "$REPONSE" != "1" ] 148 do 149 echo -e "$COLTXT}Votre choix: $COLSAISIE\c" 150 read -e SVG 151 152 if [ ! -e "$SVG" ]; then 153 echo -e "$COLERREUR" 154 echo -e "Le fichier $COLINFO}$SVG}$COLERREUR} n'existe pas." 155 156 REPONSE=2 157 else 158 echo -e "$COLTXT" 159 echo "Vous avez choisi:" 160 echo -e "$COLCMD\c" 161 ls -lh $SVG 162 163 POURSUIVRE_OU_CORRIGER 164 fi 165 done 166 167 #v=$(df -h | grep /var | grep -v "/var/se3" | sed -e "s/ \{2,\}/ /g" | cut -d" " -f5 | sed -e "s/%//") 168 #if [ $v -gt 50 ]; then 169 # 170 #else 171 # 172 #fi 173 174 REP="" 175 while [ -z "$REP" ] 176 do 177 echo -e "$COLTXT" 178 echo "Arrêt du serveur d'annuaire..." 179 /etc/init.d/slapd stop 180 sleep 2 181 test=$(ps aux | grep slapd | grep -v grep) 182 if [ ! -z "$test" ]; then 183 echo -e "$COLERREUR" 184 echo "L'arrêt du serveur a échoué." 185 echo "Il reste au moins un processus slapd:" 186 echo -e "$COLCMD\c" 187 ps aux | grep slapd | grep -v grep 188 189 REPONSE="" 190 while [ "$REPONSE" != "o" -a "$REPONSE" != "n" ] 191 do 192 echo -e "$COLTXT" 193 echo -e "Voulez-vous réessayer d'arrêter slapd? ($COLCHOIX}o/n$COLTXT}) $COLSAISIE\c" 194 read REPONSE 195 done 196 197 if [ "$REPONSE" = "n" ]; then 198 echo -e "$COLERREUR" 199 echo "Abandon." 200 exit 1 201 fi 202 else 203 REP="OK" 204 fi 205 done 206 207 echo -e "$COLTXT" 208 echo "Préparation de la nouvelle arborescence /var/lib/ldap" 209 echo -e "$COLCMD\c" 210 mv /var/lib/ldap /var/lib/ldap.$ladate} 211 mkdir /var/lib/ldap 212 cp /var/lib/ldap.$ladate}/DB_CONFIG /var/lib/ldap/ 213 214 echo -e "$COLTXT" 215 echo -e "Restauration de la sauvegarde $COLINFO}$SVG" 216 echo -e "$COLCMD\c" 217 slapadd -c -l $SVG 218 219 220 if [ "$?" = "0" ]; then 221 echo -e "$COLTXT" 222 echo "La commande a semble-t-il réussi." 223 # Droits sur /var/lib/ldap 224 # [ -z $(grep "3.1" /etc/debian_version) ] && chown -R openldap.openldap /var/lib/ldap 225 echo -e "$COLTXT" 226 echo -e "Redémarrage du serveur d'annuaire LDAP" 227 echo -e "$COLCMD\c" 228 /etc/init.d/slapd start 229 test=$(ps aux | grep slapd | grep -v grep) 230 if [ -z "$test" ]; then 231 echo -e "$COLERREUR" 232 echo "Le redémarrage du service slapd a échoué." 233 234 echo -e "$COLTXT" 235 echo "Vous devrez redémarrer manuellement le service par:" 236 echo -e "$COLCMD\c" 237 echo " /etc/init.d/slapd start" 238 else 239 echo -e "$COLTXT" 240 echo "Rédémarrage du service slapd réussi." 241 fi 242 243 echo -e "$COLTXT" 244 echo "Après redémarrage du LDAP, redémarrez si nécessaire les services samba" 245 echo "et apache2se." 246 247 else 248 echo -e "$COLERREUR" 249 echo "La commande a renvoyé un code d'erreur." 250 # [ -z $(grep "3.1" /etc/debian_version) ] && chown -R openldap.openldap /var/lib/ldap 251 REPONSE="" 252 while [ "$REPONSE" != "o" -a "$REPONSE" != "n" ] 253 do 254 echo -e "$COLTXT" 255 echo -e "Voulez-vous remettre en place l'arborescence précédente? ($COLCHOIX}o/n$COLTXT}) $COLSAISIE\c" 256 read REPONSE 257 done 258 259 if [ "$REPONSE" = "o" ]; then 260 echo -e "$COLTXT" 261 echo -e "Rétablissement de la version antérieure..." 262 echo -e "$COLCMD\c" 263 rm -fr /var/lib/ldap 264 mv /var/lib/ldap.$ladate} /var/lib/ldap 265 266 echo -e "$COLTXT" 267 echo -e "Redémarrage du serveur d'annuaire LDAP" 268 echo -e "$COLCMD\c" 269 /etc/init.d/slapd start 270 test=$(ps aux | grep slapd | grep -v grep) 271 if [ -z "$test" ]; then 272 echo -e "$COLERREUR" 273 echo "Le redémarrage du service slapd a échoué." 274 275 echo -e "$COLTXT" 276 echo "Vous devrez redémarrer manuellement le service par:" 277 echo -e "$COLCMD\c" 278 echo " /etc/init.d/slapd start" 279 else 280 echo -e "$COLTXT" 281 echo "Rédémarrage du service slapd réussi." 282 fi 283 echo -e "$COLTXT" 284 echo "Après redémarrage du LDAP, redémarrez si nécessaire les services samba" 285 echo "et apache2se." 286 exit 1 287 else 288 echo -e "$COLERREUR" 289 echo "L'opération a échoué." 290 echo "Le serveur d'annuaire LDAP n'a pas été redémarré." 291 echo -e "$COLTXT" 292 exit 1 293 fi 294 295 fi 296 297 DOMAINSID=`net getlocalsid | cut -d: -f2 | sed -e "s/ //g"` 298 #Change le SambaPrimaryGroupe 299 echo "Modification du SambaPrimaryGroupe en arriere plan dans 2mn" 300 AT_SCRIPT=/root/modif_SambaPrimaryGroupe.sh 301 echo "#!/bin/bash 302 ldapsearch -x -b $PEOPLERDN,$BASEDN '(objectclass=*)' uid | grep -v People | grep -v \# | grep uid: | cut -d\" \" -f2 | while read ID 303 do 304 ldapmodify -x -v -D "$ADMINRDN,$BASEDN" -w "$ADMINPW" <<EOF 305 dn: uid=\$ID,$PEOPLERDN,$BASEDN 306 changetype: modify 307 replace: sambaPrimaryGroupSID 308 sambaPrimaryGroupSID: $DOMAINSID-513 309 EOF 310 done 311 " >$AT_SCRIPT 312 chmod 700 $AT_SCRIPT 313 at now +2 minutes -f $AT_SCRIPT >/dev/null 314 315 #rm -rf /var/lib/ldap
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 |