Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Idée pour gérer le plus simplement possible les sauvegardes...


Messages recommandés

Posté(e)

Bonjour à tous :) ,

 

Jusqu'à maintenant, je créais des images de "/" et "/home" avec partimage depuis kaella live une fois par mois. J'ai eu à m'en servir, et je reconnais que ça marche très bien. Mais il y a un inconvénient majeur: en cas de crash, les sauvegardes pouvaient manquer de fraîcheur (de 1 à 30 jours).Vu le travail fastidieux et surtout long que la création d'images de partitions demande, la fréquence mensuelle me paraissait difficile à réduire.

Ma réflexion m'a donc amener à cerner l'essentiel et à réduire au maximum les contraintes.

L'essentiel: c'est les données personnelles ( rédaction en tout genre, photos, données professionnelles...). Bref ! Votre vie...

Imaginer, le dernier chapitre de votre livre perdu :bounce: . Tout le reste peut se reconstituer: réinstallation...

L'objectif que je me suis fixé, consiste donc à avoir un clone de mon "/home", disons une synchronisation par jour sur un support externe. Ceci devant être automatique pour ne plus avoir à se prendre la tête et pouvoir enfin travailler sereinement sans craindre l'anéantissement de mes divers travaux.

Je pense y être parvenue en faisant ceci:

 

1° Création en tant que root du fichier "/usr/bin/backup.sh" dont le contenu est du style:

 

#!/bin/bash

rsync -a --delete /home /media/disque_dur_externe/dossier_de_sauvegarde

 

La première exécution de ce script copiera tout les dossiers et sous dossiers, fichiers du dossier sources (y compris ceux cachés) vers la cible. Ici, "/home" est la source et "/media/..." la cible. Les autres exécutions rajouteront les nouvelles données et retirerons celles supprimées. Ainsi, après chaque exécution, nous aurons un clone parfait de "/home" :wink: .

 

2° Rendre ce fichier exécutable

3° Automatiser le tout pour une exécution quotidienne eu rajoutant une ligne ad hoc au fichier "/etc/crontab". Voici le mien:

 

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

 

# run-parts

01 * * * * root nice -n 19 run-parts --report /etc/cron.hourly

02 4 * * * root nice -n 19 run-parts --report /etc/cron.daily

22 4 * * 0 root nice -n 19 run-parts --report /etc/cron.weekly

42 4 1 * * root nice -n 19 run-parts --report /etc/cron.monthly

5 13 * * * root /usr/bin/backup.sh

 

Il s'agit de la dernière ligne qui demande l'exécution de "backup.sh" tous les jours à 13 h 05.

 

Je teste cela depuis quelques jours et je peux dire que tout se fait tout seul et parfaitement.

Je voulais vous en faire profiter.

Bien sur, je suis à l'écoute de vos commentaires :wink: .

Amicalement.

 

pll

Posté(e)

Salut !

attention la syncro c'est très limite pour les sauvegarde !

 

Je t'explique :

 

je fais mes deux repertoires exemple qui est la cible de la sauvegarde qui contient 5 fichier (1,2,3,4,5) et un repertoire vide, backup_exemple qui recevra la sauvegarde

jeremy@localhost ~ $ mkdir {exemple,backup_exemple} && touch exemple/{1,2,3,4,5} && ls -l exemple/
total 0
-rw-r--r-- 1 jeremy jeremy 0 30 nov.  19:51 1
-rw-r--r-- 1 jeremy jeremy 0 30 nov.  19:51 2
-rw-r--r-- 1 jeremy jeremy 0 30 nov.  19:51 3
-rw-r--r-- 1 jeremy jeremy 0 30 nov.  19:51 4
-rw-r--r-- 1 jeremy jeremy 0 30 nov.  19:51 5

 

je lance ta commande et je voie que mes deux repertoire contienent la meme chose

 

jeremy@localhost ~ $ rsync -a --delete exemple/ backup_exemple/
jeremy@localhost ~ $ ls -l exemple/
total 0
-rw-r--r-- 1 jeremy jeremy 0 30 nov.  19:51 1
-rw-r--r-- 1 jeremy jeremy 0 30 nov.  19:51 2
-rw-r--r-- 1 jeremy jeremy 0 30 nov.  19:51 3
-rw-r--r-- 1 jeremy jeremy 0 30 nov.  19:51 4
-rw-r--r-- 1 jeremy jeremy 0 30 nov.  19:51 5
jeremy@localhost ~ $ ls -l backup_exemple/
total 0
-rw-r--r-- 1 jeremy jeremy 0 30 nov.  19:51 1
-rw-r--r-- 1 jeremy jeremy 0 30 nov.  19:51 2
-rw-r--r-- 1 jeremy jeremy 0 30 nov.  19:51 3
-rw-r--r-- 1 jeremy jeremy 0 30 nov.  19:51 4
-rw-r--r-- 1 jeremy jeremy 0 30 nov.  19:51 5

 

Et la ... par malheur je fait un rm -rf sur les donnée que je veux sauvegarder, ou le disque dur qui contient les données à sauvegarder tombe en carafe, et malheureusement je n’étais pas la à ce moment et le script fait quand même son boulot :

 

jeremy@localhost ~ $ rm  exemple/*
jeremy@localhost ~ $ rsync -a --delete exemple/ backup_exemple/
jeremy@localhost ~ $ ls exemple/
jeremy@localhost ~ $ ls backup_exemple/
jeremy@localhost ~ $ 

 

Les deux dossiers sont vides !

 

A mons avis la methode la plus simple pour contrer ce problème c'est de se faire plusieurs jeux de sauvegardes compressés pour ce laisser le temps de réagir sur ce genre de cas de figure ;-)

Posté(e)

Et la ... par malheur je fait un rm -rf sur les donnée que je veux sauvegarder, ou le disque dur qui contient les données à sauvegarder tombe en carafe, et malheureusement je n’étais pas la à ce moment et le script fait quand même son boulot :

 

jeremy@localhost ~ $ rm  exemple/*
jeremy@localhost ~ $ rsync -a --delete exemple/ backup_exemple/
jeremy@localhost ~ $ ls exemple/
jeremy@localhost ~ $ ls backup_exemple/
jeremy@localhost ~ $ 

 

Les deux dossiers sont vides !

 

A mons avis la methode la plus simple pour contrer ce problème c'est de se faire plusieurs jeux de sauvegardes compressés pour ce laisser le temps de réagir sur ce genre de cas de figure ;-)

Bonjour 256JMAN :-) ,

 

Merci pour ta réponse qui met en évidence un cas critique dont les conséquences pourraient s'avérer désastreuses.

Que penserais tu de supprimer l'option "--delete" pour éviter les suppressions ?

Je pourrais supprimer l'option "--delete" sur mon script et en créer un autre avec, ce dernier ne serait lancé que manuellement après vérification.

J'ai bien fait d'en parler :D .

A bientôt.

 

pll

Posté(e)

En effet c'est cette option qui m'a intrigué.

Mais le problème c'est que si tu enlève cette option tu vas te retrouver avec une sauvegarde vite encombrante, vue que tous les fichiers que tu supprimeras par ce que tu n'en veux plus resterons dans ta sauvegarde ... à la restoration je te promet un jolie bordel ^^. Bon après je ne maitrise pas du tout rsync, je sais juste que c'est un outils puissant, y a peut être moyen d'affiner ça en se penchant sur le manuel.

 

Bon, ce que je ne t'ai pas dit sur le problème du disque en carafe c'est que ca foutra ta sauvegarde en l'air uniquement si tu as le malheur de synchroniser directement sur le point de montage(à la racine du disque quoi) si la casse du disque embarque un bout du chemin de la cible de la sauvegarde rsync refusera de ce lancer et ne corrompra pas tes sauvegarde ... on peut jouer avec ça, en revanche pour gerer suppressions volontaire ou involontaire juste avec de la synchro c'est infaisable je pense.

 

Apres chaque stratégies de sauvegardes dépend surtout de ce que tu sauvegarde, il faut que ce soit réfléchit et testé , en tout cas archiver au moins un ou deux jeux de sauvegarde me parait plutôt sage.

 

Sinon si tu à la flemme le moyen radicale c'est le RAID1 (vue le prix des disque dur en ce moment je commence sérieusement à penser m'en monter un). Sinon si je fouille dans mes archives j'ai un p'tit bout de script à ajouter au tien pour compresser ta syncro et faire une rotation de jeux de sauvegardes automatiquement (pour éviter d'avoir 12 000 jeux de sauvegarde)

 

Mais bon c'est tellement sympa a faire un script de sauvegarde sous linux que je pari que tu va vouloir le faire tout seul :-P (sinon tu te serais deja rué sur KBackup ... non ? :-P)

Posté(e)

J'ai fait le même genre de script mais en incrémental en changeant le répertoire de backup en fonction de la date du backup (donc pas de risque d'effacer les données dans un ancien backup si elles sont effacées dans leur répertoire d'origine). Qui plus est, avec l'option --link-dest et un lien symbolique pointant toujours sur le backup le plus récent je limite la taille prise sur le disque par les backups successifs (en fait c'est "incrémental" dans le sens où tous les fichiers déjà sauvegardés sont repris dans le backup en cours sous forme de hard link)

 

Après, chacun voit midi à sa porte : les backups manuels directement avec rsync, les automatisés, les scripts python, les logiciels dédiés, les serveurs de backup dédiés (on a un fana de BackupPC au bureau), ...

Posté(e)

Bonjour KewlCat et 256JMAN :) ,

 

La faille de mon script réside dans le fait qu'une suppression intensive précédent l'exécution du script aurait pour effet la perte totale des deux cotés des données correspondantes. Partant de ce constat et après la lecture de ce tuto , j'ai pensé que le passage par la création de fichiers temporaires lors du backup pourrait permettre un éventuel retour en arrière dans le cas critique d'une suppression de l'utilisateur avant l'exécution du script.

J'ai rajouté à cela une compression pour limiter la place requise, une suppression des fichier après le transfert pour permettre une éventuelle interruption.

Bien, je vais vous montrer en premier le script actuel et en deuxième, celui envisagé:

 

#!/bin/bash
rsync -a --delete /home /media/stockludwig/home_ludwig 

 

#!/bin/bash
rsync -azT --compress --temp-dir=/media/stockludwig/home_ludwig/temp --delete-after /home /media/stockludwig/home_ludwig 

 

Je ne l'ai pas testé car je ne suis pas sur du résultat et je préfère vous le soumettre avant ;-) .

A bientôt et merci pour votre aide :) .

 

pll

Posté(e)

Bon, j'ai fait un test. Pas terrible, j'obtiens le même résultat :-? .

Je vais essayer de repartir sur la base du premier script mais en rajoutant juste la compression. Puis, en créant 2 scripts identiques mais avec un nom différent et pointant vers un dossier cible différent vers le disque dur externe. Un serait lancé à midi et l'autre à minuit...La compression est importante car le disque cible est d'un volume inférieur au double de celui la partition contenant la source(/home) !

En décalant les deux sauvegardes de 12, je devrais avoir le temps de réagir ?! Ou, éventuellement une les dates paires et l'autre les dates impaires, cron permet il cela ?

Il me semble que le principe de deux sauvegardes décalées devrait réduire considérablement le risque évoqué par 256JMAN :chpas: .

Qu'en pensez vous ?

Bonne soirée.

 

pll

Posté(e) (modifié)

je me suis fait ce script qui est lancé périodiquement via cron.

Je devais améliorer quelques trucs pour qu'il soit facilement portable sur un autre compte. C'est fait !

Sinon, il existe le logiciel Synkron (Windows et Linux).

 

#!/bin/sh
#
# installer préalablement Xdialog,  utilisé pour l'affichage des messages dans l'interface graphique.
#


# définition de DISPLAY pour pouvoir afficher les messages d'information
# dans l'environnement graphique en cas d'utilisation via cron
export DISPLAY=":0.0" 

# titre du programme pour toutes les fenètres
TITRE="Sauvegarde"

# definition du repertoire de stockage
CHEMIN="/mnt/sauvegardes/"

# definition du nom du fichier
NAME="$USER"_"$(date +"%d-%B-%Y_%H-%M").gz"

# fenetre de confirmation avant sauvegarde
Xdialog --title "$TITRE" --default-no --ok-label "Continuer" --cancel-label "Abandonner" \
               --yesno "Sauvegarde de $USER !" 10 55
       # sortie sur bouton Quitter ou clic sur Echap
       case $? in
               1)      exit 0 ;; # Appuyé sur Quitter
               255)    exit 0 ;; # Appuyé sur Echap
       esac

# affichage d'une fenêtre "patientez" en arrière plan 
(Xdialog --title "$TITRE" --auto-placement --ok-label "Masquer cette fenêtre" \
               --msgbox "Synchronisation en cours... Veuillez patienter." 5 80) &

# Sauve le PID de la fenêtre
PATIENTEZ=$!

# supprime les sauvegardes de plus d'un an 
find . -mtime +365 -name "*.gz"| xargs rm

# ménage des fichiers inutiles
rm -f ~/.mozilla/firefox/p27wa3yv.default/Cache/*
rm -rf ~/.thumbnails

# sauvegarde 
tar cf "$CHEMIN$NAME" "$HOME" 
if [ $? -ne 0 ] # si tar retourne une erreur
then
   # fermeture de la fenêtre "patientez" en arrière plan 
   kill $PATIENTEZ
   # affichage d'une erreur
   Xdialog --title "$TITRE" --auto-placement --ok-label "Abandonner" \
               --msgbox "La sauvegarde de $USER a échouée !" 5 80
   exit 1
fi

# fermeture de la fenêtre "patientez" en arrière plan 
kill $PATIENTEZ

exit 0

Modifié par gibé
Posté(e)

Bonsoir à tous :) ,

 

J'ai affiné un peu le script initial, ce qui nous donne ceci:

 

#!/bin/bash

rsync -a --delete --exclude=.gvfs /home/ /media/........

 

La partie en gras a été rajoutée pour exclure le fichier .gvfs qui posait problème (il s'agit d'un bogue connu).

Pour plus de sécurité, je fais mensuellement un backup image de "/home".

Pour moi, ce niveau de sécurisation des données me semble suffisant. Mais à chacun ses exigences ;) .

En tout cas, je lis toujours avec intérêt les différents points de vues et les solutions correspondantes.

@+.

 

pll

  • 3 mois après...
Posté(e) (modifié)

Bonsoir à tous :) ,

 

il est également possible de lancer un backup à chaque démarrage en créant en root dans "/etc/rc.local" la ligne:"

/usr/bin/backup.sh". Ce qui donne dans mon cas le "rc.local" suivant:

 

#!/bin/sh
#
### BEGIN INIT INFO
# Provides: rc.local
# X-Mandriva-Compat-Mode
# Default-Start: 2 3 4 5
# Short-Description: Local initialization script
# Description: This script will be executed *after* all the other init scripts.
#              You can put your own initialization stuff in here if you don't
#              want to do the full Sys V style init stuff.
### END INIT INFO

touch /var/lock/subsys/local
#Alternative Patch Mike Galbraith
/usr/bin/turbo.sh
#startup backup
/usr/bin/backup.sh

 

Ceci est compatible avec la programmation à heure fixe décrite précédemment.

 

Voilà ;) .

 

pll

Modifié par pierrotlalune

Rejoindre la conversation

Vous publiez en tant qu’invité. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...