Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#276 Le 24/11/2008, à 17:10

KicheTof

Re : [HowTo] Sauvegarder son "home" avec rsync

Très sympa ton script Pacome ! Je vais regarder un peu la partie python smile bien plus propre que Zenity... wink

Merci de l'info !


Ubuntu Intrepid Ibex 64bit
Intel Core2Duo E6750 OC @ 3.52GHz - 4Gb DDR2 1066 - GeForce 7900GTO

Hors ligne

#277 Le 25/11/2008, à 20:10

pacome

Re : [HowTo] Sauvegarder son "home" avec rsync

Salut.

KicheTof a écrit :

Très sympa ton script Pacome ! Je vais regarder un peu la partie python smile bien plus propre que Zenity... wink

Merci de l'info !

Ben de rien; et merci pour l'idée de vérifier l'UUID!;)

Zenity peut faire plus de choses que le petit script python que je propose (un paramètre à trois valeurs!), c'est normal que son lancement soit plus complexe.
De plus je ne suis pas sûr qu'il y ait un moyen plus simple d'afficher une barre de progression comme tu le souhaites.

KicheTof a écrit :

Y'a un truc que je ne comprend pas, quand je le lance, j'ai firefox qui ram a fond... vraiment bizzare.

As-tu essayé de redéfinir la priorité de rsync avec nice? Avec ta config ce sont très vraisemblablement les accès disque qui sont en cause, mais ça aidera peut-être.

À+

Hors ligne

#278 Le 21/01/2009, à 15:45

m2nis

Re : [HowTo] Sauvegarder son "home" avec rsync

Bonjour à tous,

Bravo pour ce fil plein d'informations. Pourtant, je n'ai pas trouvé mon bonheur pour un problème que je tente de résoudre: conserver dans la sauvegarde les fichiers supprimés sur la source, mais dans un répertoire séparé afin qu'ils ne soient pas présent en cas de restauration, mais récupérables en cas de fausse manipulation sur la machine source (est-ce bien clair ? smile).

Bref, j'ai initié un fil que vous trouverez ici, et j'ose penser qu'un des nombreux contributeurs aura une petite lumière à me donner. big_smile

D'avance merci.


Michaël.

Hors ligne

#279 Le 22/01/2009, à 11:04

teke

Re : [HowTo] Sauvegarder son "home" avec rsync

Tu as du sauter des pages... un exemple :

--backup-dir=`date +%y%m` suffix=.`date +%y%m%d-%H%M`

C'est très sympa... car cela permet d'avoir un dossier de backup qui est toujours à l'identique de l'original, tout en gardant un historique contrôlable des fichiers supprimés ou modifiés.

Hors ligne

#280 Le 23/01/2009, à 08:09

m2nis

Re : [HowTo] Sauvegarder son "home" avec rsync

teke a écrit :

C'est très sympa... car cela permet d'avoir un dossier de backup qui est toujours à l'identique de l'original, tout en gardant un historique contrôlable des fichiers supprimés ou modifiés.

Ce n'est hélas pas exactement ce que je cherche. Le problème de l'option backup (que j'utilise néanmoins pour l'instant), c'est qu'elle sauvegarde ET les fichiers supprimés ET les fichiers modifiés. Pour des raisons de place, je souhaite ne faire un backup QUE des fichiers supprimés afin de conserver une certaine sécurité pour les utilisateurs. Mais visiblement, rsync ne propose pas ce que je cherche dans ses options. Il faut donc que je me contente de ça, ou... que j'écrive un script un peu costaud... smile On verra un peu plus tard...


Michaël.

Hors ligne

#281 Le 17/02/2009, à 19:54

alteo_gange

Re : [HowTo] Sauvegarder son "home" avec rsync

Bonjour à tous!

Je n'ai pas sauvegardé mon système depuis assez longtemps et je pense qu'il est grand temps de me mettre à rsync. Mais malgré la lecture du manuel, je n'arrive pas à faire les 2 choses suivantes:

1) ne sauver qu'un fichier (garder1-2 dans mon exemple) au fin fond d'une arborescence mais pas tous les autres fichiers et répertoires en amont (à l'exception des répertoires parent du fichier en question, bien entendu)
2) ne pas sauver un répertoire (exclure2-1/ dans mon exemple) à la racine de ce que l'on sauvegarde tout en sauvant les répertoires du même nom présents dans une autre partie de l'arborescence.

Pas clair? Pour illustrer cela, je vous propose de construire l'arborescence suivante:

/tmp/essai/BASE/
/tmp/essai/BASE/test1/
/tmp/essai/BASE/test1/exclure1-1/
/tmp/essai/BASE/test1/garder1-1/
/tmp/essai/BASE/test1/garder1-1/garder1-2
/tmp/essai/BASE/test1/garder1-1/exclure1-2
/tmp/essai/BASE/test2/
/tmp/essai/BASE/test2/exclure2-1/
/tmp/essai/BASE/test2/garder2-1/
/tmp/essai/BASE/test2/garder2-1/exclure2-1/
/tmp/essai/BASE/exclure2-1/

Les chaines de caractères ne se terminant pas par un / sont des fichiers. Les autres, des répertoires.

Cela revient à taper les commandes:

mkdir -p /tmp/essai/BASE /tmp/essai/BACK
cd /tmp/essai/BASE
mkdir -p exclure2-1/ test1/exclure1-1/ test1/garder1-1/ \
  test2/exclure2-1/ test2/garder2-1/exclure2-1/
touch test1/garder1-1/garder1-2 test1/garder1-1/exclure1-2

Le répertoire /tmp/essai/BASE/test1/ illustre mon 1er objectif. /tmp/essai/BASE/test2/ et /tmp/essai/BASE/exclure2-1/ mon 2ème.

======================================================================
illustration de l'échec du 1er objectif (défini au début du message)
======================================================================

rsync -av --stats -r --include=test1/garder1-1/garder1-2 --exclude=test1/* \
  --delete /tmp/essai/BASE /tmp/essai/BACK

-> /tmp/essai/BACK/BASE/test1/garder1-1/garder1-2 n'est pas sauvé, contrairement à ce que j'attendais

=======================================================================
illustration de l'échec du 2ème objectif (défini au début du message)
=======================================================================

rsync -av --stats -r --exclude=exclure2-1/ --delete \
  /tmp/essai/BASE /tmp/essai/BACK

-> aucun répertoire exclure2-1 n'a été sauvé dans /tmp/essai/BACK/BASE (j'attendais que /tmp/essai/BASE/test2/exclure2-1/ et /tmp/essai/BASE/test2/garder2-1/exclure2-1/ le soient)

Autre tentative:

rsync -av --stats -r --exclude=/exclure2-1/ --delete \
  /tmp/essai/BASE /tmp/essai/BACK

-> tous les exclure2-1/ ont été sauvés (j'attendais que /tmp/essai/BASE/exclure2-1/ ne le soit pas)

Quelles commandes taper pour atteindre les 2 objectifs?

Hors ligne

#282 Le 17/02/2009, à 22:35

Sorbus

Re : [HowTo] Sauvegarder son "home" avec rsync

Salut alteo_gange,

Pour ton premier objectif, en deux lignes rsync :

rsync -av --stats --exclude=test1/*   --delete /tmp/essai/BASE ~/tmp/essai/BACK
rsync -av --stats --delete /tmp/essai/BASE/test1/garder1-1/garder1-2 /tmp/essai/BACK/BASE/test1/garder1-1/

Je suppose que le fichier au fin fond d'une arborescence garde toujours le même nom, et les répertoires parents aussi (sinon, je ne vois pas comment faire). Si oui, en deux lignes, dans un script, ça marche très bien ainsi.

J'ai enlevé le '-r' proposé dans tes exemples: il est a priori inutile puisque tu utilises l'option '-a' (qui équivaut à -rlptgoD et inclut donc '-r')

Pour l'objectif 2, compléter le chemin du répertoire à exclure, autant qu'il le faut pour qu'il n'y ait pas de chemin identique entre le répertoire /exclure2-1 que tu veux exclure et ceux que tu veux garder :

rsync -av --stats --exclude=/BASE/exclure2-1/ --delete \
  /tmp/essai/BASE /tmp/essai/BACK

Hors ligne

#283 Le 17/02/2009, à 23:00

alteo_gange

Re : [HowTo] Sauvegarder son "home" avec rsync

Pour le (1), la commande suivante ne marche pas non plus:

rsync -av --stats --include=/test1/ --include=/test1/garder1-1/ \
  --include=/test1/garder1-1/garder1-2 --exclude=* \
  --delete /tmp/essai/BASE /tmp/essai/BACK

Dernière modification par alteo_gange (Le 17/02/2009, à 23:14)

Hors ligne

#284 Le 17/02/2009, à 23:13

alteo_gange

Re : [HowTo] Sauvegarder son "home" avec rsync

Salut Sorbus.

C'est bon pour l'objectif 2. Il fallait donc partir de /BASE/. Merci.

Pour l'objectif 1, je souhaite faire ça en une commande, pour d'inclure l'option --backup-dir par la même occasion.

Hors ligne

#285 Le 17/02/2009, à 23:21

alteo_gange

Re : [HowTo] Sauvegarder son "home" avec rsync

rsync -av --stats --include=/BASE/test1/ --include=/BASE/test1/garder1-1/ \
  --include=/BASE/test1/garder1-1/garder1-2 --exclude=/BASE/test1/** \
  --delete /tmp/essai/BASE /tmp/essai/BACK

Ça marche aussi pour le (1). smile

Hors ligne

#286 Le 18/02/2009, à 21:47

alteo_gange

Re : [HowTo] Sauvegarder son "home" avec rsync

Je suis en train de sauvegarder mon $USER sur le disque dur de mon ancien portable. Il démarre une fois sur 10 (bib biiiip biiiip de la carte mère) et ne fonctionne qu'en mode texte (merci Acer). hmm Je ne suis même pas sûr que j'aurai assez de place. Il faudrait peut-être ajouter une fonction de calcul de la place que prendra la sauvegarde dans le script.

J'ai choisi de passer par un fichier externe au lieu de marquer toutes les exclusions/inclusion directement dans la commande. C'est beaucoup plus convivial et lisible. On peut sauter des lignes, ajouter des commentaires... Là je n'ai pas eu à remonter un niveau d'arborescence comme c'était le cas hier (où je partais de BASE à mon grand étonnement). Cela vient peut-être du fait que je n'avais pas mis de slash à la fin des deux derniers chemins.

Hors ligne

#287 Le 18/02/2009, à 22:01

alteo_gange

Re : [HowTo] Sauvegarder son "home" avec rsync

En plus je n'ai pas de cable croisé pour relier les 2 ordis, ni de cable ethernet pour relier le portable au routeur. Ça va être long. hmm J'aurais aimé me couché tôt.

Dernière modification par alteo_gange (Le 18/02/2009, à 22:02)

Hors ligne

#288 Le 19/02/2009, à 10:00

Sorbus

Re : [HowTo] Sauvegarder son "home" avec rsync

Là je n'ai pas eu à remonter un niveau d'arborescence comme c'était le cas hier (où je partais de BASE à mon grand étonnement). Cela vient peut-être du fait que je n'avais pas mis de slash à la fin des deux derniers chemins.

Oui, c'est ça. J'ai essayé moi aussi dans la journée d'hier en ajoutant une exclusion dans mon script de sauvegarde : si on met les slashs à la fin, plus besoin de remonter dans l'arborescence.

Donc, ça, c'était bon aussi :

rsync -av --stats --exclude=/exclure2-1/ --delete \
  /tmp/essai/BASE/   /tmp/essai/BACK/

Et puis :

J'ai choisi de passer par un fichier externe au lieu de marquer toutes les exclusions/inclusion directement dans la commande. C'est beaucoup plus convivial et lisible. On peut sauter des lignes, ajouter des commentaires...

Si tu peux donner quelques indications sur la façon de faire... Je crois que soupaloignon cherche à faire cela aussi wink

Hors ligne

#289 Le 19/02/2009, à 13:58

alteo_gange

Re : [HowTo] Sauvegarder son "home" avec rsync

Salut Bruno.
En effet, les slashs à ajouter au répertoire à sauvegarder et au répertoire de sauvegarde sont un peu traitre.

Mon script de sauvegarde ressemblait à:

#!/bin/bash

DATE=`date +%Y-%m-%d_%H-%M-%S`

ssh romain@192.168.2.3 mkdir -p ~/INC/${DATE}/

rsync -av -e ssh --stats --del --exclude-from=exceptions \
    --backup --backup-dir=~/INC/${DATE} ~/ romain@192.168.2.3:~/SAUV/ \
    2> ~/tmp/rsync_${DATE}.log

... inspiré de la doc officielle de rsync, de la documentation ubuntu, de ce forum et du hors-série n°35 de Linux Pratique 35 commandes pour tirer le meilleur de votre système GNU/Linux (encore en kiosque).

Le fichier "exceptions" ressemblait à:

/.aMule/Incoming/
/.VirtualBox/
/.wine/
*.iso
*~
*.bak
*.o
*.cpp
*.class

cache/
.cache/
Cache/
.Cache/
thumbnails/
.thumbnails/
Thumbnails/
.Thumbnails/
tmp/
Tmp/
temp/
Temp/
trash/
.trash/
Trash/
.Trash/
lost+found/
.ssh/

... inspiré d'un peu partout.

J'avais aussi exclu entre autres les répertoires suivants: /.ies4linux/, /.PlayOnLinux/, /.anki/backups/, /bureau/
... ainsi que quelques fichiers.

À noter que:
(1): les répertoires à exclure prennent un / à la fin; les fichiers à exclure ne prennent pas de / à la fin
(2): quand on fait commencer toutes les lignes de '+ ' ou de '- ' (je vous laisse deviner le sens), l'option "--exclude-from" semble équivalente à "--include-from". Ceci permettrait de traiter toutes les exceptions dans un seul fichier au lieu de deux. C'est une question de goût. Je ne sais pas s'il existe une autre option (au nom plus neutre) pour faire la même chose.
(3): pour ne sauvegarder qu'un fichier:

- *
+ /parent1/
+ /parent1/parent2/
+ /parent1/parent2/parent3/
+ /parent1/parent2/parent3/mon_fichier_à_sauvegarder

Au final, grâce aux exceptions, je n'ai sauvegardé que 40 % de mon $USER! smile Cela m'a permis de ne pas remplir entièrement ma partition de sauvegarde. Pour un même fichier (typiquement un fichier volumineux), le taux de transfert (j'avais utilisé l'option --progress, que je n'ai pas marqué ci-dessus) était de 2,62 Mo/s. Pas rapide. Mais le facteur limitant était peut-être la vitesse d'écriture sur le disque dur et pas la vitesse de transfert par wifi (sauvegarde effectuée sans clé WEP ou WAP -> ça craint).


J'aurais quelques questions supplémentaires sur rsync.

Hors ligne

#290 Le 19/02/2009, à 14:04

m2nis

Re : [HowTo] Sauvegarder son "home" avec rsync

Sorbus a écrit :

J'ai choisi de passer par un fichier externe au lieu de marquer toutes les exclusions/inclusion directement dans la commande. C'est beaucoup plus convivial et lisible. On peut sauter des lignes, ajouter des commentaires...

Si tu peux donner quelques indications sur la façon de faire... Je crois que soupaloignon cherche à faire cela aussi wink

rsync ...  --exclude-from=/chemin/fichier_exclusions ...

avec un contenu du "fichier_exclusions" de ce genre :

- cache*/
- Cache*/
- .cache*/
- .Cache*/
- lock
- /.thumbnails/
- trash/
- Trash/
- *.msf
- *.*~

"-" permet l'exclusion, "+" permet théoriquement l'inclusion (non testé).

- cache*/
Un "/" en fin de règle signifie que l'on s'adresse à un répertoire, pas de "/" en début de règle signifie que ce répertoire peut se trouver n'importe où dans l'arborescence, et enfin le nom du répertoire commence par "cache".

- .cache*/
Même chose mais pour des répertoires cachés.

- lock
Un fichier "lock" n'importe où.

- /.thumbnails/
Un répertoire caché à la racine de la sauvegarde.

- *.msf
Tous les fichiers d'extension "msf".

etc...


Michaël.

Hors ligne

#291 Le 02/03/2009, à 00:17

koderez

Re : [HowTo] Sauvegarder son "home" avec rsync

Bonjour.

Je me permet de poster mon script de sauvegarde inspiré en très grande partie des travaux que j'ai suivie depuis le début de ce tread.

Vous allez vous dire : "Et un de plus...", mais je pense que ce script se dénote des autres et a sa place ici, car j'ai inclus ce que certains ont longtemps cherché (dont moi) : une barre de progression qui soit réaliste.

Le script :

#!/bin/bash

afficheTaille () {
  taille=$(sed '/\./! s/^.*$/&.00/' <<< $1)
  i=1
  while [[ ${#taille} -ge 7 ]]; do
    taille=$(bc <<< "scale=2;$taille/1024")
    ((i+=1))
  done

  case $i in
    1) taille+=" octets" ;;
    2) taille+=" Ko" ;;
    3) taille+=" Mo" ;;
    4) taille+=" Go" ;;
  esac

  echo $taille
}

CHOIX=`zenity --list --radiolist --width=300 --height=250 --title="svgrd" --text="Choix du périphérique de sauvegarde" --hide-column=2 \
  --column "" --column "" --column "Périphériques" \
  TRUE        1           "Disque interne" \
  FALSE       2           "Disque Externe"`

if [ "$?" = 1 ]; then
  zenity --info --title="svgrd" --text="Opération annulée."
  exit
fi

case $CHOIX in
  1) UUID=bcd7940f-f0ca-44a1-bb21-c2b060f68fac
     MOUNT=/media/svgrd
     ;;
  2) UUID=9db17bd1-d105-4e6a-b5c9-d0a68f69f8eb
     MOUNT=/media/svgrd_extern
     ;;
esac

SRC=$HOME
DEST=$MOUNT/$USER
RSYNC_ERR=/tmp/rsync.err

if [[ ! -e /dev/disk/by-uuid/$UUID ]]; then
  zenity --error --title="svgrd" --text="Périphérique de sauvegarde absent."
else
  MOUNT_ERR=$(mount $MOUNT 2>&1)
  MOUNT_ES=$?
  if [[ ( $MOUNT_ES -ne 0 ) && ( $MOUNT_ES -ne 32 ) ]]; then # 32=déjà montée
    zenity --error --title="svgrd" --text="Problème lors du   montage du périphérique de\nsauvegarde \"$MOUNT\".\n\n<span color='red'><b>mount erreur n° $MOUNT_ES</b>.\n$MOUNT_ERR</span>"
  else
    echo "0" > nb
    DEBUT=$(date +%s)

    rsync -av --delete --ignore-errors --force --progress \
    --filter "- .aMule/Incoming/" \
    --filter "- .cache/" \
    --filter "- .thumbnails/" \
    --filter "- lost+found/" \
    --filter "- Musique/" \
    --filter "- Vidéos/" \
    --filter "- *~" \
    --filter "- *.avi" --filter "- *.AVI" \
    --filter "- *.log" --filter "- *.LOG" \
    --filter "- *.mp3" --filter "- *.MP3" \
    --filter "- *.vdi" --filter "- *.VDI" \
    --filter "- *.wma" --filter "- *.WMA" \
    $SRC/ $DEST/ 2>>$RSYNC_ERR | sed '
    /to-check=/! {
      /^sending/  {d;q;}
      /\/$/       {d;q;}
      /^sent/     {s/^.*$/echo "&" \>\/tmp\/rapport\.txt/e;d;q;};
      /^total/    {s/^.*$/echo "&" \>\>\/tmp\/rapport\.txt/e;d;q;};
      /^.\{43\}/  {s/\(^.\{20\}\).*\(.\{20\}$\)/echo \$\(\(\$\(cat nb\) + 1\)\) \> nb; echo "\1\[...\]\2" \>\/tmp\/svgrd_sed\.txt/e;d;q;};
      /^.\{43\}/! {s/^.*$/echo \$\(\(\$\(cat nb\) + 1\)\) \> nb; echo "&" \>\/tmp\/svgrd_sed\.txt/e;d;q;};
    }
    /to-check=/ {
      s/.*=\(.*\)\/\(.*\))/echo "#`echo "scale=2;\(\2-\1\)\*100\/\2" | bc | cut -d\. -f1`% (\$\(\(\2 - \1\)\) fichiers sur \2\) > \$\(cat \/tmp\/svgrd_sed\.txt\)"\; echo "scale=2;\(\2-\1\)\*100\/\2" | bc/e
    }
    ' | zenity --progress --width=580 --title="svgrd - synchronisation" --text="Initialisation de la sauvegarde..." --percentage=0 --auto-close &

    while true; do
      sleep 1
      if [ -z "$(pidof zenity)" ]; then
        pkill rsync
        break
      fi
    done

    FIN=$(date +%s)
    TEMPS=$(($FIN-$DEBUT))
    TP_HEU=$(sed 's/^.$/0&/' <<< $(($TEMPS/3600)))
    TP_TMP=$(($TEMPS%3600))
    TP_MIN=$(sed 's/^.$/0&/' <<< $(($TP_TMP/60)))
    TP_SEC=$(sed 's/^.$/0&/' <<< $(($TP_TMP%60)))
    TP=$(echo "$TP_HEU:$TP_MIN:$TP_SEC")

    ERR=$(cat $RSYNC_ERR)
    if [[ ${#ERR} -ne 0 ]]; then
      zenity --error --title="svgrd" --text="Problème lors de la sauvegarde du répertoire <b>$SRC</b>.\n\n<b><span color='red'>$ERR</span></b>."
      rm $RSYNC_ERR
    else
      NB_FICH=$(cat nb)
      ENVOI=$(afficheTaille $(cat /tmp/rapport.txt | grep sent | cut -d' ' -f2))
      RECU=$(afficheTaille $(cat /tmp/rapport.txt | grep sent | cut -d' ' -f6))
      VITESS=$(afficheTaille $(cat /tmp/rapport.txt | grep sent | cut -d' ' -f9))
      zenity --info --title="svgrd" --text="Sauvegarde du répertoire\n<b>$SRC</b>\nefféctuée avec succès.\n$NB_FICH fichiers synchronisés\n\nEnvoyé:\t$ENVOI\nReçu:\t$RECU\nTemps:\t$TP\nTransfert:\t$VITESS/sec"
      rm nb
    fi

    UMOUNT_ERR=$(umount $MOUNT 2>&1)
    UMOUNT_ES=$?
    if [[ $UMOUNT_ES -ne 0 ]]; then
      zenity --error --title="svgrd" --text="Problème lors du démontage du périphérique de\nsauvegarde \"$MOUNT\".\n\n<span color='red'><b>umount erreur n° $UMOUNT_ES</b>.\n$UMOUNT_ERR</span>"
    fi

  fi
fi

Copies d'écran :

164570d2f8daef0fe57393bff71541ed.png

0fbfa8b462fde994285e8fc1bd595110.png

0526166551029a3d56896d0173d5e3e1.png


S'il y a besoin d'explication, n'hesitez pas à me demander.
Et bien sur toute remarque, critique ou correction est la bienvenue.

Et soyez indulgent je suis débutant smile

Hors ligne

#292 Le 04/03/2009, à 10:23

orla

Re : [HowTo] Sauvegarder son "home" avec rsync

Keep fait déjà ça non ? Il est même dans les dépôts.

http://jr.falleri.free.fr/keep/wiki/Screenshots

keep1.jpg

#293 Le 04/03/2009, à 12:43

alteo_gange

Re : [HowTo] Sauvegarder son "home" avec rsync

Est-ce que Keep gère le SSH? Faut-il d'abord monter une partition distante en SSH avant de l'utiliser?

Hors ligne

#294 Le 04/03/2009, à 13:04

koderez (non connecté)

Re : [HowTo] Sauvegarder son "home" avec rsync

keep n'est plus maintenu depuis 2006. De plus il a été conçu pour KDE (donc faut installer tout ça sous gnome).

#295 Le 04/03/2009, à 13:48

alteo_gange

Re : [HowTo] Sauvegarder son "home" avec rsync

Les librairies de base de KDE ne nécessitent peut-être pas des centaines de Mo. (aptitude install -s un_logiciel)

Le cloisonnement des logiciels à leur environnement (dont je suis aussi l'acteur) est préoccupant. On prend de mauvaises habitudes.

Hors ligne

#296 Le 04/03/2009, à 15:21

m2nis

Re : [HowTo] Sauvegarder son "home" avec rsync

[Dangers vécus de rsync]

Bien évidemment, il se cache derrière tout cela une faute de l'utilisateur (moi smile) lié à un oubli de certaines hypothèses. Mais l'enchainement lié à l'hypothèse en question me paraît tellement facile à oublier que je préfère le partager. Si celà peut épargner quelques soucis à d'autres... smile

Soit un disque de sauvegarde (source) synchronisé sur un autre disque de sauvegarde (destination) au travers d'un partage Samba. Le script est sur la machine destination, le partage Samba sur la machine source. L'option "--delete" est activée afin que les deux sauvegardes soient identiques. Soit un disque source qui crash. Les données du disque source sont donc perdues, et comme elles sont inaccessibles, le partage Samba présente un répertoire vide. Et la synchronisation de vider tous les fichiers de la sauvegarde destination. :-(

Heureusement, comme il s'agissait de deux sauvegardes, je n'ai eu que très peu de pertes (un peu quand même avec quelques fichiers utilisés directement sur la sauvegarde source). Mais cela aurait pu être autrement plus grave...


Michaël.

Hors ligne

#297 Le 04/03/2009, à 17:23

teke

Re : [HowTo] Sauvegarder son "home" avec rsync

oui c'est aussi du vécu... d'où l'intérêt d'utiliser l'option bakup et répertoire de backup de la commande rsync... ce qui est supprimé sur le disque cible est ainsi en fait déplacé ailleurs... Bon il faut de temps en temps passer faire le ménage... perso j'utilise tout simplement une commande "date [patern]" dans l'option répertoire... ce qui permet ensuite de supprimer tout simplement les dossiers vieux des x [mois|semaines|jours]...

Pourquoi faire de rsync sur du samba ??????????? tu pers la possibilité géniale de compresser la communication... vaut bien mieux utiliser du ssh...

Hors ligne

#298 Le 04/03/2009, à 18:11

alteo_gange

Re : [HowTo] Sauvegarder son "home" avec rsync

@m2nis: comme le dit teke, l'option --backup est là pour éviter ce genre de problèmes.

Hors ligne

#299 Le 05/03/2009, à 09:52

m2nis

Re : [HowTo] Sauvegarder son "home" avec rsync

teke a écrit :

d'où l'intérêt d'utiliser l'option bakup et répertoire de backup de la commande rsync...

Cette option est très utile dans certains cas, mais elle est aussi gourmande en place car elle sauvegarde les fichiers supprimés ET les fichiers modifiés. Et je n'ai pas trouvé de moyen de ne conserver que les fichiers supprimés (voir ma question ici).

teke a écrit :

perso j'utilise tout simplement une commande "date [patern]" dans l'option répertoire... ce qui permet ensuite de supprimer tout simplement les dossiers vieux des x [mois|semaines|jours]...

Cette méthode serait parfaite si on ne pouvait garder que les fichiers supprimés. Avec les modifications, la place nécessaire peut vite devenir considérable avec une sauvegarde quotidienne de plusieurs utilisateurs.

teke a écrit :

Pourquoi faire de rsync sur du samba ??????????? tu pers la possibilité géniale de compresser la communication... vaut bien mieux utiliser du ssh...

L'option "-z ou --compress" n'est à ma connaissance pas limitée au ssh. J'obtiens d'ailleurs bien dans mes stats l'écart entre le volume à transférer et le volume réellement transféré ("speedup is 1.95" par exemple). Par ailleurs, le cryptage avec ssh est indispensable lorsque l'on utilise un réseau public. En local, avec de gros volume, la sollicitation supplémentaire que doit demander le cryptage ne me paraît pas, à première vue, nécessaire et souhaitable.

Enfin, le fait d'utiliser ssh ne supprime à priori pas le problème que je viens de vivre. En effet, à partir du moment où la source n'est pas sur le système principal mais est montée dans l'arborescence du système, même un rsync local peut devenir problématique. Si la source n'est pas montée correctement, l'arborescence présentée par le système est vide et le rsync va tout supprimer dans la destination.

Pour l'instant, le moyen que je vois pour parer au problème est d'avoir, à la racine de la source à synchroniser, un fichier au nom unique dont la présence pourrait être vérifiée avant de lancer le rsync. En cas de disque défectueux, le fichier serait donc aussi inaccessible que le reste de l'arborescence et la catastrophe pourrait être évitée. Mais si vous avez d'autres idées, je suis preneur. smile

Dernière modification par m2nis (Le 05/03/2009, à 09:53)


Michaël.

Hors ligne

#300 Le 05/03/2009, à 12:40

alteo_gange

Re : [HowTo] Sauvegarder son "home" avec rsync

m2nis a écrit :

Pour l'instant, le moyen que je vois pour parer au problème est d'avoir, à la racine de la source à synchroniser, un fichier au nom unique dont la présence pourrait être vérifiée avant de lancer le rsync. En cas de disque défectueux, le fichier serait donc aussi inaccessible que le reste de l'arborescence et la catastrophe pourrait être évitée. Mais si vous avez d'autres idées, je suis preneur. smile

Salut. Ce n'est pas compliqué. Il suffit de vérifier que le répertoire de montage n'est pas vide avant de lancer de rsync.

Hors ligne

Haut de page ↑