#$/bin/bash -- # Mise à jour du clone système de clevo # sous ROOT seulement # CONFIGURATION: # Un répertoire de sauvegarde sous /home/, un peu trop parano: BKP_DIR='/home/controle' # Le fichier d'exclusion des fichiers inutiles et /home/ : EXCLUDE='/usr/local/etc/exclure_clone.txt' || (echo "ERREUR fichier exclude" ; EXIT 1) # Le répertoire de montage de la partition du clone: CLONE_REP=/mnt/clone # La partition correspondante à monter: CLONE_PART='/dev/VG_1/lv_clone' #mount -text4 /dev/VG_1/lv_clone /mnt/clone/ # Le système actif à cloner: SYSTEM_REP='/' # 0 Monter le système clone (type ext4) : sudo mount -text4 "${CLONE_PART}" "${CLONE_REP}" && echo "$CLONE_PART monté sur $CLONE_REP" || echo "$CLONE_REP déja monté" # 1 Vider les répertoires de contrôle: # interactif pour tout fichier non en écriture ! #-#echo "Avant effacement" ; df -h | egrep "$CLONE_REP" # # DANGER: ### si la variable est vide on obtient: rm -ri /* /.*, qui efface tous ### les volumes montés -systeme et données- y compris via USB! ### l'option -i est la sécurité minimum à assurer ! ### Une autre sécurité serait de tester son existence ### if [[ -d "$BKP_DIR" ]] ; then do ### mieux: ### if [[ "$BKP_DIR" =~ "+/home/|/mnt/+" ]] ; then do # #rm -ri "${BKP_DIR}/* ${BKP_DIR}/.*" ### DEBUG -i pour tester le script ! ### else "echo Effacemnt impossible: $BKP_DIR n'est pas un nom de répertoire valide" ; fi ### Il n'y a pas beaucoup d'inconvénients à compléter/mettre à jour une partie ### de ce répertoire, sinon du désordre et de l'occupation d'espace # 2 rsync echo "Avant rsync:" ; df -h | egrep "$CLONE_REP" echo "rsync -aHXAv --delete --backup --backup-dir=$BKP_DIR --exclude-from=$EXCLUDE $SYSTEM_REP $CLONE_REP" sudo rsync -aHv --delete --backup --backup-dir="$BKP_DIR" --exclude-from="$EXCLUDE" "$SYSTEM_REP" "$CLONE_REP" echo "Après rsync:" ; df -h | egrep "$CLONE_REP|Sys" # 3 Vérifier # /etc/fstab = celui du clone reste différent (inchangé=exclu ) # /boot/grub => relancer grub echo "Il faut parfois mettre grub à jour (sudo update-grub2)" #sudo update-grub # démonter le clone: sudo umount -l "$CLONE_REP"