1 août 2008 4
clavicogyre ver 1.5
Je publie le petit script de backup maison que j’utilise depuis plusieurs années. Simple, à base de rsync au travers d’SSH, il propose un petit menu pour ne sauvegarder que certaines partie de votre home (Images, Documents, Musique, etc), et possède l’option –delete de rsync facultative :
#!/bin/bash #====================================================================== # CLAVICOGYRE - Script de backup #====================================================================== # by fabien a. [fabien@feub.net] # http://feub.net/ #====================================================================== # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, # - write to the Free Software # Foundation, Inc., # 51 Franklin Street, # Fifth Floor, # Boston, MA 02110-1301 # USA. # - See http://www.gnu.org/licenses/gpl.html #====================================================================== # Numero de version VERSION="ver 1.5.02 (01/08/2008)" # Chemin vers le serveur SSHPATH="utilisateur@serveur:" # Chemins PHOTOS_SOURCE="$HOME/lightroom/" PHOTOS_CIBLE="$SSHPATH/home/fabien/Images/Photos" PICTURES_SOURCE="$HOME/Pictures/" PICTURES_CIBLE="$SSHPATH/home/fabien/Images" DOCS_SOURCE="$HOME/Documents/" DOCS_CIBLE="$SSHPATH/home/fabien/Documents" MUSIC_SOURCE="$HOME/Music/iTunes/iTunes Music/" MUSIC_CIBLE="$SSHPATH/backup/Musique" WWW_SOURCE="$HOME/www/" WWW_CIBLE="$SSHPATH/home/fabien/www" DEV_SOURCE="$HOME/Dev/" DEV_CIBLE="$SSHPATH/home/fabien/Dev" BIN_SOURCE="$HOME/bin/" BIN_CIBLE="$SSHPATH/home/fabien/Backup/bin" RESSOURCES_SOURCE="$HOME/Resources/" RESSOURCES_CIBLE="$SSHPATH/home/fabien/Resources" # Date d'execution du script JOUR=$(date+%d) ## + %d permet d'extraire le jour MOIS=$(date+%m) ## +%m permet d'extraire le mois ANNEE=$(date+%Y) ## +%y permet d'extraire l'annee HEURE=$(date+%H) ## +%H permet d'extraire l'heure MINUTES=$(date+%M) ## +%M permet d'extraire les minutes # Envoi du log par email #MAIL_DEST="adresse@email.net" #MAIL_SUJET="[Backup] du $ANNEE-$MOIS-$JOUR a $HEUR:$MINUTES" # Rapport RAPPORT="$HOME/Desktop/$ANNEE$MOIS$JOUR-clavicogyre-backup.log" # Les options sont : # v : verbose # r : rursif # u : update seulement # p : prerve les permissions # a : copie en tant qu'archive # t : prerve la date # --delete : supprime ce qui a ete supprime (copie stricte) # Fonctions backup() { SOURCE="$1" CIBLE="$2" echo "Backup $SOURCE ...." echo "" >> $RAPPORT echo "----------------------------------" >> $RAPPORT echo Backup du dossier ${1} du $JOUR'/'$MOIS \ a $HEURE'h'$MINUTES >> $RAPPORT echo "----------------------------------" >> $RAPPORT # Si option delete if [ "$3" = "DEL" ] then echo "L'option --delete est activee, etes-vous sur? (O/[n])" read ACTDEL if [ "$ACTDEL" = "O" ] then OPTDEL="--delete" echo "Option --delete ON" >> $RAPPORT else OPTDEL="" echo "Option --delete OFF" >> $RAPPORT fi else OPTDEL="" echo "option --delete OFF" >> $RAPPORT fi # rsync rsync -vrupatz --exclude-from=$HOME/bin/rsync_exclude.txt \ $OPTDEL -e ssh "${SOURCE}" "${CIBLE}" | tee -a $RAPPORT 2>&1 echo "" >> $RAPPORT echo "Fin du backup." echo "Un fichier de log se trouve ici : " echo $RAPPORT echo "----------------------------------" } # On efface l'ecran clear echo "CLAVICOGYRE : SCRIPT DE BACKUP - $VERSION" # Demande du repertoire a sauvegarder echo "----------------------------------" echo "Repertoire a sauvegarder : " echo "=== 1) Photos (Lightroom)" echo "=== 2) Pictures" echo "=== 3) Documents" echo "=== 4) Music" echo "=== 5) www" echo "=== 6) Dev" echo "=== 7) bin" echo "=== 8) Resources" echo "----------------------------------------------" echo -n "L'ajout de 'strict' ajoutera l'option --delete de rsync " echo -n "et effectuera ainsi une copie conforme." echo -n "ATTENTION : a utiliser avec parcimonie, les fichiers" echo "supprimes seront supprimes sur la sauvergarde egalement." echo "Exemple : 2 strict" echo "fera une copie stricte du dossier Documents." echo "----------------------------------" echo -n "---> choix : " read REP tput clear case "$REP" in "1" ) backup $PHOTOS_SOURCE $PHOTOS_CIBLE;; "1 strict" ) backup $PHOTOS_SOURCE $PHOTOS_CIBLE "DEL";; "2" ) backup $PICTURES_SOURCE $PICTURES_CIBLE;; "2 strict" ) backup $PICTURES_SOURCE $PICTURES_CIBLE "DEL";; "3" ) backup $DOCS_SOURCE $DOCS_CIBLE;; "3 strict" ) backup $DOCS_SOURCE $DOCS_CIBLE "DEL";; "4" ) backup $MUSIC_SOURCE $MUSIC_CIBLE;; "4 strict" ) backup $MUSIC_SOURCE $MUSIC_CIBLE "DEL";; "5" ) backup $WWW_SOURCE $WWW_CIBLE;; "5 strict" ) backup $WWW_SOURCE $WWW_CIBLE "DEL";; "6" ) backup $DEV_SOURCE $DEV_CIBLE;; "6 strict" ) backup $DEV_SOURCE $DEV_CIBLE "DEL";; "7" ) backup $BIN_SOURCE $BIN_CIBLE;; "7 strict" ) backup $BIN_SOURCE $BIN_CIBLE "DEL";; "8" ) backup $RESSOURCES_SOURCE $RESSOURCES_CIBLE;; "8 strict" ) backup $RESSOURCES_SOURCE $RESSOURCES_CIBLE "DEL";; * ) echo "Aucun choix valide. Termine.";; esac echo "Fin du script."
Note : les anti-slash \ ne sont pas à taper, ils indiquent que j’ai coupé les lignes pour que ça ne dépasse pas du cadre. Il s’agit d’une seule et même ligne.
Note 2 : Oui clavicogyre est une arme de Goldorak ;}
Commentaires récents