Décrire ici « ZAP/Vientiane/IFMT/sauvegarde-externe ».

== Sauvegarde externe vers disque USB de 160 Go de l'IFMT ==
=== Idée : ===
 *On dispose 2 disque USB de 160 Go pour faire la sauvegarde externe dans la semaine il y a toujours l'un disque qui est branché pour faire la sauvegarde chaque nuit
 *On échange le disque chaque semaine
=== Utilisation: ===
 *On a un simple script '''/home/admin/scripts/backup.sh'''
 *On insère le disque
 *On active le volume logique par:  '''# /home/admin/scripts/backup.sh   insert_usb'''
 *Chaque nuit à 2h 00 le script:
     '''# /home/admin/scripts/backup.sh backup'''  qui se lance automatiquement(qui fait: monter; backup; puis démonter les partitions)
 *pour éjecter l'un disque USB(changer le disque USB) on fait:  '''# /home/admin/scripts/backup.sh   eject_usb'''

Script: '''/home/admin/scripts/backup.sh:'''
{{{
#! /bin/bash
## script backup vers le disque USB de l'IFMT ##

export PATH=/sbin:/bin:/usr/sbin:/usr/bin
## commande
COMMAND=rdiff-backup
OPTIONS=
# garder l'historique de 2 semaines
REMOVE_OPTIONS="--remove-older than 2W"
# données à sauvegarder
ETUDIANTS=/srv/share/etudiants
PERSONNELS=/srv/share/personnels
INSP=/srv/share/insp
MAIL=root@smtp::/var/mail/ifmt.refer.org

# répertoire de montage (mount point)
MP=/.backup
# points de montage: $MP/etudiants  $MP/personnels   $MP/insp   $MP/mail

# nom du volume group
VG=/dev/backup-ifmt
#
# VG/personnels=50 Go; etudiants=60 Go; insp=15 Go; mail=20 Go

# activer les volumes logiques
function activate_lv {
        lvchange -ay  $VG/etudiants;
        lvchange -ay  $VG/personnels;
        lvchange -ay  $VG/insp;
        lvchange -ay  $VG/mail;
}
# déactiver les volumes logiques
function deactivate_lv {
        lvchange -an  $VG/etudiants;
        lvchange -an  $VG/personnels;
        lvchange -an  $VG/insp;
        lvchange -an  $VG/mail;
}
# monter les volumes logiques
function mount_lv {
        mount $VG/etudiants   $MP/etudiants
        mount $VG/personnels  $MP/personnels
        mount $VG/insp        $MP/insp
        mount $VG/mail        $MP/mail
}
# démonter les volumes logiques
function umount_lv {
        umount   $MP/etudiants
        umount   $MP/personnels
        umount   $MP/insp
        umount   $MP/mail
}

# faire le sauvegarde
function backup {
        echo "copier etudiants"
        $COMMAND  $OPTIONS  $ETUDIANTS  $MP/etudiants/bk_etudiants
        echo "copier personnels"
        $COMMAND  $OPTIONS  $PERSONNELS $MP/personnels/bk_personnels
        echo "copier insp"
        $COMMAND  $OPTIONS  $INSP       $MP/insp/bk_insp
        echo "copier mail"
        $COMMAND  $OPTIONS  $MAIL       $MP/mail/bk_mail
        # effacer anciens fichiers plus de 2 semaines
        $COMMAND  $REMOVE_OPTIONS  $MP/etudiants/bk_etudiants
        $COMMAND  $REMOVE_OPTIONS  $MP/personnels/bk_personnels
        $COMMAND  $REMOVE_OPTIONS  $MP/insp/bk_insp
        $COMMAND  $REMOVE_OPTIONS  $MP/mail/bk_mail
}
###################   faire actions #########################
case $1  in
     insert_usb )
                activate_lv ;
     ;;
     eject_usb )
               
               deactivate_lv;
     ;;
     backup )
                mount_lv;
                backup ;
                # vide tampon avant démonter
                sync;
                umount_lv;
     ;;
     mount_lv )  mount_lv;
     ;;
     umount_lv ) umount_lv;
     ;;

     * )  echo "Options: insert_usb   eject_usb  mount_lv   umount_lv    backup";
esac
}}}