[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 #!/bin/bash 2 3 #/usr/share/se3/sbin/mirroring_mise_en_place.sh 4 # 5 ## $Id: mirroring_mise_en_place.sh 7959 2013-12-01 01:06:12Z keyser $ ## 6 # 7 ##### Mise en place du mirroring entre le disk principal et un DEUXIEME DISK ##### 8 # au choix de l'utilisateur 9 # Franck Molle - Academie de Rouen 10 # 09/2005 - Ajout de l'arret pour ldap/mysql avant le mirroring 11 # Stephane Boireau - Academie de Rouen 12 # 16/01/2006 - Ajout du choix du partitionnement automatique ou non du deuxieme disque. 13 14 #Couleurs 15 COLTITRE="\033[1;35m" # Rose 16 COLPARTIE="\033[1;34m" # Bleu 17 18 COLTXT="\033[0;37m" # Gris 19 COLCHOIX="\033[1;33m" # Jaune 20 COLDEFAUT="\033[0;33m" # Brun-jaune 21 COLSAISIE="\033[1;32m" # Vert 22 23 COLCMD="\033[1;37m" # Blanc 24 25 COLIMPORTANT="\033[1;33m" # Jaune 26 27 COLERREUR="\033[1;31m" # Rouge 28 COLINFO="\033[0;36m" # Cyan 29 30 31 if [ "$1" = "--help" -o "$1" = "-h" ]; then 32 echo -e "$COLINFO" 33 echo "Permet de mettre en place un mirroring entre deux disques" 34 echo "Script interactif" 35 echo "Usage : aucune option" 36 echo -e "$COLTXT" 37 exit 38 fi 39 40 BLEU="\033[1;34m" 41 BROWN="\033[0;33m" 42 ROSE="\033[1;35m" 43 GRIS="\033[0;37m" 44 VERT="\033[1;32m" 45 ROUGE="\033[1;31m" 46 BLANC="\033[00m" 47 48 49 50 clear 51 echo -e "$COLTITRE} 52 *************************************************************** 53 * Ce script va mettre en place un mirroring a l'aide de rsync * 54 * entre votre disque principale (/dev/XXX ou /dev/ciss/XXX, * 55 * et un 2eme disque de votre choix * 56 * * 57 * * 58 *$COLIMPORTANT} /!\ ATTENTION /!\ A CE QUE VOUS FAITES $COLTITRE} * 59 * $COLIMPORTANT} SI LE DEUXIEME DISQUE CONTIENT DEJA DES DONNEES $COLTITRE} * 60 *$COLTITRE} * 61 * suggestions, corrections ... : franck.molle@ac-rouen.fr * 62 * * 63 * appuyez sur une touche pour continuer * 64 ***************************************************************" 65 read OK 66 echo -e "$COLTXT}" 67 68 69 if [ -n "$(df | grep vol0-lv_home)" ]; then 70 echo -e "$COLERREUR}Il semble que votre disque soit en LVM " 71 echo -e "$COLERREUR}Le script ne peut mettre en place un mirroring avec du LVM pour le moment" 72 echo -e "$COLTXT" 73 exit 1 74 75 fi 76 77 78 79 # detection de rsync 80 if [ -e /usr/bin/rsync ]; then 81 echo "" 82 #echo "Rsync est deja installe" 83 else 84 echo -e "$COLTXT}" 85 echo "Rsync est necessaire au mirroring mais ne semble pas " 86 echo -e "installe, voulez-vous l'installer maintenant ? ($COLCHOIX}o/n$COLTXT})" 87 echo "(une connexion a internet est necessaire)" 88 echo -e "Reponse: [$COLDEFAUT}o$COLTXT}] $COLSAISIE\c" 89 read REPONSE 90 91 if [ -z "$REPONSE" ]; then 92 REPONSE="o" 93 fi 94 95 while [ "$REPONSE" != "o" -a "$REPONSE" != "n" ] 96 do 97 echo -e "$COLTXT" 98 echo "Rsync est necessaire au mirroring mais ne semble pas " 99 echo -e "installe, voulez vous l'installer maintenant ? ($COLCHOIX}o/n$COLTXT})" 100 echo "(une connexion a internet est necessaire)" 101 echo -e "Reponse: $COLSAISIE\c" 102 read REPONSE 103 done 104 105 if [ "$REPONSE" = "o" ]; then 106 echo -e "$COLTXT" 107 echo "Installation de rsync lancee" 108 echo -e "$COLCMD\c" 109 apt-get update 110 apt-get install rsync 111 else 112 echo -e "$COLTXT" 113 echo "Pas d'installation de rsync." 114 fi 115 fi 116 117 118 while [ "$DISK1OK" != "o" ] 119 do 120 121 DD1DEFAULT=$(cat /etc/fstab | grep -v "^#" | grep /home | tr "\t" " " | cut -d" " -f1 | sed -e "s|[0-9]||g") 122 123 if [ "$(echo $DD1DEFAULT | wc -m)" != "4" ]; then 124 DD1DEFAULT="/dev/sda" 125 fi 126 127 echo -e "$COLTXT" 128 echo -e "Quel est votre premier disque ? [$COLDEFAUT}$DD1DEFAULT}$COLTXT}] $COLSAISIE}\c" 129 read DISK1 130 if [ -z "$DISK1" ]; then 131 DISK1=$DD1DEFAULT} 132 fi 133 134 echo -e "$COLTXT" 135 echo -e "Votre premier disque est $COLINFO}$DISK1$COLTXT}" 136 echo -e "Est-ce correct ? ($COLCHOIX}o/n$COLTXT}) [$COLDEFAUT}o$COLTXT}] $COLSAISIE}\c" 137 read DISK1OK 138 if [ -z "$DISK1OK" ]; then 139 DISK1OK="o" 140 fi 141 while [ "$DISK1OK" != "o" -a "$DISK1OK" != "n" ] 142 do 143 echo -e "$COLTXT" 144 echo -e "Est-ce correct ? ($COLCHOIX}o/n$COLTXT}) $COLSAISIE}\c" 145 read DISK1OK 146 done 147 done 148 149 150 #Sauvegarde de la table des partitions du premier disque 151 echo -e "$COLCMD" 152 sfdisk -d $DISK1 > /tmp/part 153 154 #Detection des partitions disque source 155 PARTSWAP=`fdisk -l $DISK1 | grep swap | sed -e "s/ .*//"` 156 PARTROOT=`df | grep "/\$" | sed -e "s/ .*//"` 157 #PARTHOME=`df | grep "/home" | sed -e "s/ .*//" | sed -e "s/\/dev\///"` 158 #PARTVARSE3=`df | grep "/var/se3" | sed -e "s/ .*//" | sed -e "s/\/dev\///"` 159 #TSTVAR=`df | grep "/var"| grep -v /var/se3` 160 161 PARTHOME=`df | tr "\t" " " | sed -e "s/ \{2,\}/ /g" | grep " /home$" | sed -e "s/ .*//"` 162 PARTVARSE3=`df | tr "\t" " " | sed -e "s/ \{2,\}/ /g" | grep " /var/se3$" | sed -e "s/ .*//"` 163 TSTVAR=`df | tr "\t" " " | sed -e "s/ \{2,\}/ /g" | grep "/var$"| grep -v /var/se3` 164 165 echo -e "$COLTXT" 166 echo "Le script a detecte les partitions suivantes:" 167 echo "" 168 echo -e "$COLTXT}Partition SWAP :\t$COLINFO} $PARTSWAP" 169 echo -e "$COLTXT}Partition Racine :\t$COLINFO} $PARTROOT" 170 if [ ! -z "$TSTVAR" ]; then 171 echo -e "$COLCMD\c" 172 #PARTVAR=`df | grep "/var"| grep -v /var/se3 | sed -e "s/ .*//" | sed -e "s/\/dev\///"` 173 PARTVAR=`df | tr "\t" " " | sed -e "s/ \{2,\}/ /g" | grep "/var$"| grep -v /var/se3 | sed -e "s/ .*//"` 174 echo -e "$COLTXT}Partition /VAR :\t$COLINFO} $PARTVAR" 175 else 176 # echo -e "Pas de Partition /var de detectee " 177 PARTVAR="aucune" 178 fi 179 180 echo -e "$COLTXT}Partition /HOME :\t$COLINFO} $PARTHOME" 181 echo -e "$COLTXT}Partition /VAR/SE3 :\t$COLINFO} $PARTVARSE3" 182 183 echo -e "$COLTXT" 184 echo -e "Est-ce correct ? ($COLCHOIX}o/n$COLTXT}) [$COLDEFAUT}o$COLTXT}] $COLSAISIE}\c" 185 read DETECTOK 186 if [ -z "$DETECTOK" ]; then 187 DETECTOK="o" 188 fi 189 while [ "$DETECTOK" != "o" -a "$DETECTOK" != "n" ] 190 do 191 echo -e "$COLTXT" 192 echo -e "Est-ce correct ? ($COLCHOIX}o/n$COLTXT}) $COLSAISIE}\c" 193 read DETECTOK 194 done 195 196 if [ "$DETECTOK" = "n" ]; then 197 while [ "$PARTOK" != "o" ] 198 do 199 echo -e "$COLTXT}Quelle est votre partition SWAP ? [$COLDEFAUT}/dev/sda1$COLTXT}] $COLSAISIE}\c" 200 read PARTSWAP 201 if [ -z "$PARTSWAP" ]; then 202 PARTSWAP="/dev/sda1" 203 fi 204 echo -e "$COLTXT}Quelle est votre partition RACINE ? [$COLDEFAUT}/dev/sda2$COLTXT}] $COLSAISIE}\c" 205 read PARTROOT 206 if [ -z "$PARTROOT" ]; then 207 PARTROOT="/dev/sda2" 208 fi 209 210 echo -e "$COLTXT}Quelle est votre partition /VAR ? [$COLDEFAUT}aucune$COLTXT}] $COLSAISIE}\c" 211 read PARTVAR 212 if [ -z "$PARTVAR" ]; then 213 PARTVAR="/dev/sda3" 214 fi 215 216 echo -e "$COLTXT}Quelle est votre partition HOME ? [$COLDEFAUT}/dev/sda6$COLTXT}] $COLSAISIE}\c" 217 read PARTHOME 218 if [ -z "$PARTHOME" ]; then 219 PARTHOME="/dev/sda6" 220 fi 221 222 echo -e "$COLTXT}Quelle est votre partition VAR/SE3 ? [$COLDEFAUT}/dev/sda5$COLTXT}] $COLSAISIE}\c" 223 read PARTVARSE3 224 if [ -z "$PARTVARSE3" ]; then 225 PARTVARSE3="/dev/sda5" 226 fi 227 228 echo -e "$COLTXT" 229 echo "Voici la liste de vos partitions :" 230 echo -e "$COLTXT}Partition SWAP :\t$COLINFO} $PARTSWAP" 231 echo -e "$COLTXT}Partition Racine :\t$COLINFO} $PARTROOT" 232 233 if [ "$PARTVAR" != "aucune" ]; then 234 echo -e "$COLTXT}Partition /VAR :\t$COLINFO} $PARTVAR" 235 fi 236 237 echo -e "$COLTXT}Partition /HOME :\t$COLINFO} $PARTHOME" 238 echo -e "$COLTXT}Partition /VAR/SE3 :\t$COLINFO} $PARTVARSE3" 239 240 echo -e "$COLTXT" 241 echo -e "Est-ce correct ? ($COLCHOIX}o/n$COLTXT}) [$COLDEFAUT}o$COLTXT}] $COLSAISIE}\c" 242 read PARTOK 243 if [ -z "$PARTOK" ]; then 244 PARTOK="o" 245 fi 246 247 while [ "$PARTOK" != "o" -a "$PARTOK" != "n" ] 248 do 249 echo -e "Est-ce correct ? ($COLCHOIX}o/n$COLTXT}) $COLSAISIE}\c" 250 read PARTOK 251 done 252 253 254 done 255 fi 256 257 DISK2OK="n" 258 while [ "$DISK2OK" != "o" ] 259 do 260 DEFAULT_DISK2="/dev/sdb" 261 liste_dd=$(sfdisk -g | grep -v "$DISK1:" | cut -d":" -f1) 262 test1=$liste_dd[*]} 263 test2=($test1) 264 j=0 265 for i in $test1; do 266 j=$[j+1] 267 done 268 if [ $j -ge 1 ]; then 269 cpt=0 270 while [ $cpt -le $j ] 271 do 272 if sfdisk -s $test2[$cpt]} >/dev/null 2>&1; then 273 DEFAULT_DISK2="$test2[$cpt]}" 274 break 275 fi 276 277 cpt=$(($cpt+1)) 278 done 279 fi 280 281 echo -e "$COLTXT" 282 echo -e "Quel est votre deuxieme disque ? [$COLDEFAUT}$DEFAULT_DISK2}$COLTXT}] $COLSAISIE\c" 283 read DISK2 284 if [ -z "$DISK2" ]; then 285 DISK2=$DEFAULT_DISK2 286 fi 287 288 echo -e "$COLTXT" 289 echo -e "Votre deuxieme disk est $COLINFO}$DISK2" 290 291 echo -e "$COLTXT" 292 echo -e "Est-ce correct ? ($COLCHOIX}o/n$COLTXT}) [$COLDEFAUT}o$COLTXT}] $COLSAISIE}\c" 293 read DISK2OK 294 if [ -z "$DISK2OK" ]; then 295 DISK2OK="o" 296 fi 297 while [ "$DISK2OK" != "o" -a "$DISK2OK" != "n" ] 298 do 299 echo -e "$COLTXT" 300 echo -e "Est-ce correct ? ($COLCHOIX}o/n$COLTXT}) $COLSAISIE}\c" 301 read DISK2OK 302 done 303 done 304 305 if [ "$DISK2" = "$DISK1" ]; then 306 echo -e "$COLERREUR}Erreur !! Vous avez saisi la meme valeur pour le 1er et le 2eme disque." 307 echo -e "$COLERREUR}Le script ne peut mettre en place un mirroring sur le meme disque." 308 echo -e "$COLTXT" 309 exit 1 310 fi 311 312 echo -e "$COLCMD" 313 DISK2PARTS=`sfdisk -l $DISK2 2>/dev/null` 314 if [ -z "$DISK2PARTS" ]; then 315 echo -e "$COLERREUR}Erreur !! Aucun disque $DISK2 detecte." 316 echo -e "$COLERREUR}Vous avez saisi une valeur erronee pour le 2eme disque." 317 echo -e "$COLTXT" 318 exit 1 319 fi 320 321 #recuperation des noms de partitions du disque 2 322 PARTSWAP_CIBLE=`echo $PARTSWAP | sed -e "s#$DISK1#$DISK2#"` 323 PARTROOT_CIBLE=`echo $PARTROOT | sed -e "s#$DISK1#$DISK2#"` 324 PARTHOME_CIBLE=`echo $PARTHOME | sed -e "s#$DISK1#$DISK2#"` 325 PARTVARSE3_CIBLE=`echo $PARTVARSE3 | sed -e "s#$DISK1#$DISK2#"` 326 327 echo -e "$COLTXT" 328 echo -e "Voici la liste des (futures) partitions de$COLINFO} $DISK2" 329 echo -e "$COLTXT}Partition SWAP :\t$COLINFO} $PARTSWAP_CIBLE" 330 echo -e "$COLTXT}Partition Racine :\t$COLINFO} $PARTROOT_CIBLE" 331 if [ "$PARTVAR" != "aucune" ]; then 332 PARTVAR_CIBLE=`echo $PARTVAR | sed -e "s#$DISK1#$DISK2#"` 333 echo -e "$COLTXT}Partition /VAR :\t$COLINFO} $PARTVAR_CIBLE" 334 fi 335 echo -e "$COLTXT}Partition /HOME :\t$COLINFO} $PARTHOME_CIBLE" 336 echo -e "$COLTXT}Partition /VAR/SE3 :\t$COLINFO} $PARTVARSE3_CIBLE" 337 338 echo -e "$COLTXT" 339 echo -e "Voulez-vous poursuivre l'installation ? ($COLCHOIX}o/n$COLTXT}) [$COLDEFAUT}o$COLTXT}] $COLSAISIE}\c" 340 read REPONSE 341 if [ -z "$REPONSE" ]; then 342 REPONSE="o" 343 fi 344 while [ "$REPONSE" != "o" -a "$REPONSE" != "n" ] 345 do 346 echo -e "$COLTXT" 347 echo -e "Voulez-vous poursuivre l'installation ? ($COLCHOIX}o/n$COLTXT}) $COLSAISIE}\c" 348 read REPONSE 349 done 350 if [ "$REPONSE" = "n" ]; then 351 echo -e "$COLERREUR}Action abandonnee, rien n'a ete modifie." 352 echo -e "$COLTXT" 353 exit 0 354 fi 355 356 357 #creation des repertoires de travail si besoin 358 if [ -e /mirror ]; then 359 echo -e "$COLTXT" 360 echo -e "Le repertoire /mirror existe deja..." 361 else 362 echo -e "$COLCMD\c" 363 mkdir /mirror/ 364 fi 365 if [ -e /mirror/part_root ]; then 366 echo -e "$COLTXT" 367 echo -e "Le repertoire /mirror/part_root existe deja..." 368 else 369 echo -e "$COLCMD\c" 370 mkdir /mirror/part_root 371 fi 372 373 if [ "$PARTVAR" != "aucune" ]; then 374 if [ -e /mirror/part_var ]; then 375 echo -e "$COLTXT" 376 echo -e "Le repertoire /mirror/part_var existe deja..." 377 else 378 echo -e "$COLCMD\c" 379 mkdir /mirror/part_var 380 fi 381 fi 382 if [ -e /mirror/part_home ]; then 383 echo -e "$COLTXT" 384 echo -e "Le repertoire /mirror/part_home existe deja..." 385 else 386 echo -e "$COLCMD\c" 387 mkdir /mirror/part_home 388 fi 389 390 391 392 if [ -e /mirror/part_varse3 ]; then 393 echo -e "$COLTXT" 394 echo -e "Le repertoire /mirror/part_varse3 existe deja..." 395 else 396 echo -e "$COLCMD\c" 397 mkdir /mirror/part_varse3 398 fi 399 400 # creation des partitions du 2eme disque 401 REPONSE="" 402 while [ "$REPONSE" != "o" -a "$REPONSE" != "n" ] 403 do 404 echo -e "$COLTXT" 405 echo -e "Voulez-vous creer les partitions et formater le disque $COLINFO}$DISK2$COLTXT} ? ($COLCHOIX}o/n$COLTXT})" 406 echo -e "$COLIMPORTANT}Attention, le contenu de $DISK2 sera efface." 407 echo -e "$COLTXT" 408 echo -e "Reponse: $COLSAISIE}\c" 409 read REPONSE 410 done 411 412 if [ "$REPONSE" = "o" ]; then 413 414 REP="" 415 while [ "$REP" != "1" -a "$REP" != "2" ] 416 do 417 echo -e "$COLTXT" 418 echo -e "Voulez-vous effectuer un partitionnement automatique ($COLCHOIX}1$COLTXT})" 419 echo -e "ou souhaitez-vous effectuer un partitionnement manuel ($COLCHOIX}2$COLTXT}) ? $COLSAISIE\c" 420 read REP 421 done 422 423 if [ "$REP" = "1" ]; then 424 echo -e "$COLTXT" 425 echo -e "Creation des partitions et des systemes de fichiers..." 426 echo -e "$COLCMD" 427 sfdisk $DISK2 < /tmp/part 428 if [ $? != 0 ]; then 429 echo -e "$COLIMPORTANT}Erreur lors de la creation des partitions de $DISK2 " 430 echo -e "Le script ne peut se poursuivre normalement." 431 echo -e "Vos disques ne sont peut etre pas strictement identiques." 432 echo -e "$COLTXT" 433 echo -e "Vous pouvez executer cfdisk et partitionner manuellement de la meme façon que le 1er disque." 434 echo "" 435 echo -e "Pour rappel, voici l'ordre dans lequel elles devront apparaitre:" 436 echo -e "$COLTXT}Partition SWAP :\t$COLINFO} $PARTSWAP_CIBLE" 437 echo -e "$COLTXT}Partition Racine :\t$COLINFO} $PARTROOT_CIBLE" 438 if [ "$PARTVAR" != "aucune" ]; then 439 echo -e "$COLTXT}Partition /VAR :\t$COLINFO} $PARTVAR_CIBLE" 440 fi 441 echo -e "$COLTXT}Partition /HOME :\t$COLINFO} $PARTHOME_CIBLE" 442 echo -e "$COLTXT}Partition /VAR/SE3 :\t$COLINFO} $PARTVARSE3_CIBLE" 443 444 REPONSE="" 445 while [ "$REPONSE" != "o" -a "$REPONSE" != "n" ] 446 do 447 echo -e "$COLTXT" 448 echo -e "Voulez-vous lancer cfdisk maintenant ? ($COLCHOIX}o/n$COLTXT}) $COLSAISIE}\c" 449 read REPONSE 450 done 451 452 if [ "$REPONSE" = "n" ]; then 453 echo -e "$COLERREUR}Operation annulee, rien n'a ete effectue !!!" 454 echo -e "$COLTXT" 455 exit 1 456 fi 457 458 echo -e "$COLCMD" 459 /sbin/cfdisk $DISK2 460 fi 461 else 462 echo -e "$COLTXT" 463 echo -e "Vous pouvez executer cfdisk et partitionner manuellement de la meme façon que le 1er disque." 464 echo "" 465 echo -e "Pour rappel, voici l'ordre dans lequel elles devront apparaitre:" 466 echo -e "$COLTXT}Partition SWAP :\t$COLINFO} $PARTSWAP_CIBLE" 467 echo -e "$COLTXT}Partition Racine :\t$COLINFO} $PARTROOT_CIBLE" 468 if [ "$PARTVAR" != "aucune" ]; then 469 echo -e "$COLTXT}Partition /VAR :\t$COLINFO} $PARTVAR_CIBLE" 470 fi 471 echo -e "$COLTXT}Partition /HOME :\t$COLINFO} $PARTHOME_CIBLE" 472 echo -e "$COLTXT}Partition /VAR/SE3 :\t$COLINFO} $PARTVARSE3_CIBLE" 473 474 REPONSE="" 475 while [ "$REPONSE" != "o" -a "$REPONSE" != "n" ] 476 do 477 echo -e "$COLTXT" 478 echo -e "Voulez-vous lancer cfdisk maintenant ? ($COLCHOIX}o/n$COLTXT}) $COLSAISIE}\c" 479 read REPONSE 480 done 481 482 if [ "$REPONSE" = "n" ]; then 483 echo -e "$COLERREUR}Operation annulee, rien n'a ete effectue !!!" 484 echo -e "$COLTXT" 485 exit 1 486 fi 487 488 echo -e "$COLCMD" 489 /sbin/cfdisk $DISK2 490 fi 491 492 if [ "$PARTVAR" != "aucune" ]; then 493 echo -e "$COLTXT" 494 echo -e "Partition /VAR :\t$COLTXT} $PARTVAR" 495 echo -e "$COLCMD" 496 /sbin/mkswap $PARTSWAP_CIBLE && /sbin/mke2fs -j $PARTROOT_CIBLE && /sbin/mke2fs -j $PARTVAR_CIBLE && /sbin/mkfs.xfs -f $PARTHOME_CIBLE && /sbin/mkfs.xfs -f $PARTVARSE3_CIBLE 497 else 498 echo -e "$COLCMD" 499 /sbin/mkswap $PARTSWAP_CIBLE && /sbin/mke2fs -j $PARTROOT_CIBLE && /sbin/mkfs.xfs -f $PARTHOME_CIBLE && /sbin/mkfs.xfs -f /$PARTVARSE3_CIBLE 500 fi 501 502 503 if [ $? != 0 ]; then 504 echo -e "$COLERREUR}Erreur lors du formatage des partitions de $DISK2 " 505 echo -e "Le script ne peut se poursuivre." 506 echo -e "$COLTXT" 507 exit 1 508 fi 509 510 clear 511 fi 512 513 ######### traitement de la crontab ############# 514 echo -e "$COLTXT" 515 echo "Il va maintenant vous etre propose d'automatiser le mirroring." 516 grep "/mirror/mirror_rsync.sh" /etc/crontab > /tmp/mirror_crontab_$ladate}.tmp 517 if [ -s /tmp/mirror_crontab_$ladate}.tmp ]; then 518 echo -e "$COLINFO" 519 echo "Une ou des taches de mirroring sont deja programmees:" 520 echo -e "$COLCMD\c" 521 cat /tmp/mirror_crontab_$ladate}.tmp 522 echo -e "$COLINFO" 523 echo "Veillez a ne pas proposer les memes dates/heures pour la nouvelle tache" 524 echo "si vous en programmez une." 525 fi 526 527 echo -e "$COLTXT" 528 echo -e "Voulez-vous mettre en place le script rsync en crontab ? ($COLCHOIX}o/n$COLTXT})" 529 echo -e "Il se lancera tous les jours ouvrables a l'heure de votre choix." 530 echo -e "Il vous sera aussi propose de le lancer plusieurs fois par jour." 531 echo -e "Reponse: [$COLDEFAUT}o$COLTXT}] $COLSAISIE}\c" 532 read REPONSE 533 if [ -z "$REPONSE" ]; then 534 REPONSE="o" 535 fi 536 while [ "$REPONSE" != "o" -a "$REPONSE" != "n" ] 537 do 538 echo -e "$COLTXT" 539 echo -e "Voulez-vous mettre en place le script rsync en crontab ? ($COLCHOIX}o/n$COLTXT})" 540 echo "Il se lancera tous les jours ouvrables a l'heure de votre choix." 541 echo "Il vous sera aussi propose de le lancer plusieurs fois par jour." 542 echo -e "Reponse: $COLSAISIE}\c" 543 read REPONSE 544 done 545 ladate=$(date "+%Y%m%d%H%M%S") 546 547 if [ "$REPONSE" = "o" ]; then 548 ##### 549 while [ "$CRONAJOUT" != "n" ] 550 do 551 echo -e "$COLTXT" 552 echo -e "Vous allez devoir preciser a quel moment de la nuit le script s'executera." 553 echo -e "Attention, le script coupe ldap et mysql durant son execution, " 554 echo -e "il ne doit donc pas etre lance lorsque le serveur est utilise." 555 556 grep "/mirror/mirror_rsync.sh" /etc/crontab > /tmp/mirror_crontab_$ladate}.tmp 557 if [ -s /tmp/mirror_crontab_$ladate}.tmp ]; then 558 echo -e "$COLINFO" 559 echo "Une ou des taches de mirroring sont deja programmees:" 560 echo -e "$COLCMD\c" 561 cat /tmp/mirror_crontab_$ladate}.tmp 562 echo -e "$COLINFO" 563 echo "Veillez a ne pas proposer les memes dates/heures pour la nouvelle tache." 564 fi 565 566 echo -e "$COLTXT" 567 echo -e "Veuillez indiquer les heures et les minutes sous la forme hh:mn [$COLDEFAUT}02:30$COLTXT}] $COLSAISIE\c" 568 read HMCRON 569 if [ -z "$HMCRON" ]; then 570 HMCRON="02:30" 571 fi 572 573 echo -e "$COLTXT" 574 echo -e "Vous voulez que le script se lance tous les jours a $HMCRON" 575 echo -e "Est-ce correct ? ($COLCHOIX}o/n$COLTXT}) [$COLDEFAUT}o$COLTXT}] $COLSAISIE}\c" 576 read CRONOK 577 if [ -z "$CRONOK" ]; then 578 CRONOK="o" 579 fi 580 while [ "$CRONOK" != "o" -a "$CRONOK" != "n" ] 581 do 582 echo -e "$COLTXT" 583 echo -e "Est-ce correct ? ($COLCHOIX}o/n$COLTXT}) $COLSAISIE}\c" 584 read CRONOK 585 done 586 587 if [ "$CRONOK" = "o" ]; then 588 MCRON=`echo $HMCRON | cut -d: -f2` 589 HCRON=`echo $HMCRON | cut -d: -f1` 590 echo "$MCRON $HCRON * * * root /mirror/mirror_rsync.sh" >> /etc/crontab 591 592 echo -e "$COLTXT" 593 echo "Modification de la crontab effectuee." 594 echo "" 595 echo "Vous avez choisi que le script se lance tous les jours a $HMCRON" 596 echo -e "Voulez-vous qu'il se lance egalement a un autre moment ? ($COLCHOIX}o/n$COLTXT}) $COLSAISIE}\c" 597 read CRONAJOUT 598 while [ "$CRONAJOUT" != "o" -a "$CRONAJOUT" != "n" ] 599 do 600 echo -e "$COLTXT" 601 #echo "Vous avez choisi que le script se lance tous les jours ouvrables a $HMCRON" 602 echo "Vous avez choisi que le script se lance tous les jours a $HMCRON" 603 echo -e "Voulez-vous qu'il se lance egalement a un autre moment ? ($COLCHOIX}o/n$COLTXT}) $COLSAISIE}\c" 604 read CRONAJOUT 605 done 606 fi 607 done 608 fi 609 ########## 610 # Configuration de l'envoi de mail #### 611 echo -e "$COLTXT" 612 echo -e "En cas de probleme lors du mirroring des disques," 613 echo -e "le script vous previendra par mail." 614 615 while [ "$MAIL_ADMINOK" != "o" ] 616 do 617 echo -e "$COLTXT" 618 echo "Il vous faut choisir l'adresse mail qui recevra les rapports d'erreur." 619 echo "Quelle adresse mail voulez vous utiliser ? ex : admin@votre_domaine" 620 echo -e "Adresse email: $COLSAISIE\c" 621 read MAIL_ADMIN 622 echo -e "$COLTXT" 623 echo -e "Vous avez choisi $COLINFO}$MAIL_ADMIN}$COLTXT} comme adresse email." 624 echo -e "Est-ce correct ? ($COLCHOIX}o/n$COLTXT}) [$COLDEFAUT}o$COLTXT}] $COLSAISIE}\c" 625 read MAIL_ADMINOK 626 if [ -z "$MAIL_ADMINOK" ]; then 627 MAIL_ADMINOK="o" 628 fi 629 630 done 631 632 633 ################# creation des scripts ######################## 634 635 #------------------ UUID partitions racine ------------------------------------" 636 PARTROOTUUID=$(blkid | grep $PARTROOT | cut -d" " -f2 | sed s/\"\//g | sed s"/UUID=//") 637 PARTROOTUUID_CIBLE=$(blkid | grep $PARTROOT_CIBLE | cut -d" " -f2 | sed s/\"\//g | sed s"/UUID=//") 638 639 640 # creation du script rsync 641 echo -e "$COLCMD" 642 643 if [ -e /mirror/param_mirror_rsync.sh ]; then 644 mv /mirror/param_mirror_rsync.sh /mirror/param_mirror_rsync.sav_$(date "+%Y%m%d-%H%M%S").sh 645 fi 646 647 touch /mirror/param_mirror_rsync.sh 648 chmod 700 /mirror/param_mirror_rsync.sh 649 echo "# Fichier de parametres du mirroring 650 651 # Disque source 652 DISK1=$DISK1 653 654 # Disque miroir 655 DISK2=$DISK2 656 657 # Adresse mail d'alerte 658 MAIL_ADMIN=$MAIL_ADMIN 659 660 # Liste des partitions sources 661 PARTROOT=$PARTROOT 662 PARTROOTUUID=$PARTROOTUUID 663 PARTVAR=$PARTVAR 664 PARTHOME=$PARTHOME 665 PARTVARSE3=$PARTVARSE3 666 667 # Liste des partitions cibles 668 PARTROOT_CIBLE=$PARTROOT_CIBLE 669 PARTROOTUUID_CIBLE=$PARTROOTUUID_CIBLE 670 PARTVAR_CIBLE=$PARTVAR_CIBLE 671 PARTHOME_CIBLE=$PARTHOME_CIBLE 672 PARTVARSE3_CIBLE=$PARTVARSE3_CIBLE 673 674 675 # Attention: En cas de modification manuelle, relancer le script 676 # /usr/share/se3/sbin/genere_mirror_rsync_sh.sh 677 " > /mirror/param_mirror_rsync.sh 678 679 bash /usr/share/se3/sbin/genere_mirror_rsync_sh.sh 680 681 682 ###################### fin creation des scripts ############################### 683 684 clear 685 echo -e "$COLINFO" 686 echo "Script d'installation termine !!!" 687 echo "" 688 echo "" 689 echo "Le script d'installation a genere trois scripts dans /mirror !" 690 echo "Le script rsync /mirror/mirror_rsync.sh" 691 echo 692 echo "Un script /mirror/mount_$DISK2.sh vous permettant de monter les partitions" 693 echo "de $DISK2 dans les sous repertoires de /mirror afin d'en visualiser le contenu" 694 echo 695 echo "Un script /mirror/umount_$DISK2.sh vous permettant de demonter vos partitions" 696 echo "de $DISK2 dans les sous repertoires de /mirror" 697 698 echo -e "$COLTXT" 699 echo "Il faut maintenant lancer le script rsync de suite " 700 echo -e "afin d'effectuer une premiere synchronisation ($COLCHOIX}Ok$COLTXT}) $COLSAISIE\c" 701 read REPONSE 702 703 mount -t ext3 $PARTROOT_CIBLE /mirror/part_root 704 /usr/bin/rsync -av --delete --exclude=/home/* --exclude=/mirror/ --exclude=/tmp/* --exclude=/var/lock/* --exclude=/proc/* --exclude=/sys/* --exclude=/cdrom/* --exclude=/var/* / /mirror/part_root | tee -a \$FICHIERLOG 705 706 echo -e "$COLTITRE" 707 echo "Installation de grub" 708 echo -e "$COLCMD" 709 grub-install --root-directory=/mirror/part_root --no-floppy --recheck $DISK2 710 #grub-install --root-directory=/mirror/part_root --no-floppy --recheck hd1 711 echo -e "$COLINFO Grub installé !!" 712 713 714 715 716 mount -t proc none /mirror/part_root/proc 717 mount -o bind /dev /mirror/part_root/dev 718 mount -t sysfs sys /mirror/part_root/sys 719 720 mount $PARTVAR_CIBLE /mirror/part_root/var/ 721 722 chroot /mirror/part_root update-grub 723 # chroot /mirror/part_root/ /bin/bash 724 # update-grub 725 # /usr/sbin/grub-install --recheck --no-floppy $DISK2 726 727 728 729 730 sed "s/hd1/hd0/" -i /mirror/part_root/boot/grub/grub.cfg 731 sed "s#$PARTROOT_CIBLE#$PARTROOT#" -i /mirror/part_root/boot/grub/grub.cfg 732 733 echo "--------------- modification du fstab --------------------------------" 734 old_uuid_part1=` blkid | grep $DISK1\1 | cut -d" " -f2 | sed s/\"\//g` 735 old_uuid_part2=` blkid | grep $DISK1\2 | cut -d" " -f2 | sed s/\"\//g` 736 old_uuid_part3=` blkid | grep $DISK1\3 | cut -d" " -f2 | sed s/\"\//g` 737 old_uuid_part5=` blkid | grep $DISK1\5 | cut -d" " -f2 | sed s/\"\//g` 738 old_uuid_part6=` blkid | grep $DISK1\6 | cut -d" " -f2 | sed s/\"\//g` 739 740 new_uuid_part1=` blkid | grep $DISK2\1 | cut -d" " -f2 | sed s/\"\//g` 741 new_uuid_part2=` blkid | grep $DISK2\2 | cut -d" " -f2 | sed s/\"\//g` 742 new_uuid_part3=` blkid | grep $DISK2\3 | cut -d" " -f2 | sed s/\"\//g` 743 new_uuid_part5=` blkid | grep $DISK2\5 | cut -d" " -f2 | sed s/\"\//g` 744 new_uuid_part6=` blkid | grep $DISK2\6 | cut -d" " -f2 | sed s/\"\//g` 745 746 #echo "------------------partition 1------------------------------------" 747 #echo $old_uuid_part1 748 #echo $new_uuid_part1 749 #echo "------------------partition 2------------------------------------" 750 #echo $old_uuid_part2 751 #echo $new_uuid_part2 752 #echo "------------------partition 3------------------------------------" 753 #echo $old_uuid_part3 754 #echo $new_uuid_part3 755 #echo "------------------partition 5------------------------------------" 756 #echo $old_uuid_part5 757 #echo $new_uuid_part5 758 #echo "------------------partition 6------------------------------------" 759 #echo $old_uuid_part6 760 #echo $new_uuid_part6 761 762 sed "s#$old_uuid_part1#$new_uuid_part1#" -i /mirror/part_root/etc/fstab 763 sed "s#$old_uuid_part2#$new_uuid_part2#" -i /mirror/part_root/etc/fstab 764 sed "s#$old_uuid_part3#$new_uuid_part3#" -i /mirror/part_root/etc/fstab 765 sed "s#$old_uuid_part5#$new_uuid_part5#" -i /mirror/part_root/etc/fstab 766 sed "s#$old_uuid_part6#$new_uuid_part6#" -i /mirror/part_root/etc/fstab 767 768 umount /mirror/part_root/var/ 769 umount /mirror/part_root/ 770 cd /mirror/ 771 ./mirror_rsync.sh 772 echo -e "$COLTXT" 773 exit 0
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 |