Schéma du script de backup :
je fais tourner le script de sauvegarde SUR la machine à sauvegarder.
La machine qui doit sauvegarder ses propres répertoires va se connecter à un serveur de sauvegarde en NFS, afin d’y créer des dossiers datés et y déposer les fichiers à sauvegarder.
A la fin de la sauvegarde, un nettoyage des anciennes sauvegardes s’effectue, afin de libérer de l’espace.
Un exercice intéressant serait de transformer cet ensemble de script de backup en faisant en sorte que LE SERVEUR DE SAUVEGARDE se connecte à la machine à sauvegarder … 😉
Voici donc LE « Script de backup en shell » ! Cette page est la première d’une série de 6 pages.
script_e_sauvegarde
Il s’agit du script principal. Il appelle des sous-scripts et trace les phases principales de la sauvegarde dans le fichier de log. C’est ce script que nous appellerons depuis les tâches planifiées avec crontab.
#!/bin/bash # SCRIPT PRINCIPAL DE SAUVEGARDE # nom du fichier : script_e_sauvegarde # AUTEUR : MultiMrPat # Dernière modification : # -> Creation le 5dec2014 # RECUPERATION DE LA DATE a=`date --rfc-3339=date` # FICHIER DE LOG daté log="/script_sauvegarde_$a.log" # Ecriture dans le fichier de log echo "*** `date +"%Y-%m-%d:%HH%MM"`: DEBUT SCRIPT BACKUP DU $a ***" >> $log # VERIFICATION DE LA PRESENCE DES REPERTOIRES DE MONTAGE DANS /MNT sh /script_a_presence_repertoires_de_montage "$log" # MONTAGE DE TOUS LES REPERTOIRES A SAUVEGARDER # Attention !! Partage NFS : le serveur doit être autorisé a se connecter !! sh /script_b_montage_repertoires "$log" # CREATION DES REPERTOIRES CIBLE SUR LES SERVEURS DE SAUVEGARDE # Prend 3 arguments # Exemple : ./script_c_creation_repertoires "cheminbackup" "datedujour" "cheminlog" sh /script_c_creation_repertoires "/mnt/RAIDON" "$a" "$log" # COPIE DES FICHIERS # Prend 3 arguments # Exemple: # ./script_d_copie "/mnt/syno/montreuil_backup" "$a" "$log" & sh /script_d_copie "/mnt/RAIDON" "$a" "$log" # NETTOYAGE DES SAUVEGARDES ANCIENNES # Exemple : ./script_e_nettoyage_sauvegardes "/mnt/RAIDON" "datedujour" "cheminlog" sh /script_e_nettoyage_sauvegardes "/mnt/RAIDON" "$a" "$log" echo "`date +"%Y-%m-%d:%HH%MM"`: FIN $0 du $a *****" >> $log
La suite : Script de backup linux : Test de présence des répertoires de montage