Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#51 Le 07/09/2008, à 09:23

fetchy

Re : [script] sauvegarde du /home avec rdiff-backup

@roger64
Merci pour ton conseil. Et pas de problème pour le squat, je trouve que ce fil est plutôt constructif et pourra présenter différentes pistes pour ceux qui recherchent une solution, et comme il a été dit plus haut, ils pourront ainsi trouver la leur!

Hors ligne

#52 Le 07/09/2008, à 13:39

pacyang

Re : [script] sauvegarde du /home avec rdiff-backup

Merci pour ton script qui a eu pour moi un but plus lucratif que fonctionnel^^
(je l'ai pas utilisé mais j'ai mieux compris certaines commandes ^^)

Dernière modification par pacyang (Le 07/09/2008, à 13:40)

Hors ligne

#53 Le 07/09/2008, à 17:37

roger64

Re : [script] sauvegarde du /home avec rdiff-backup

@rangzen
Trouvé ça par hasard...
http://directory.fsf.org/project/rsyncrypto/

Hors ligne

#54 Le 07/09/2008, à 22:11

rangzen

Re : [script] sauvegarde du /home avec rdiff-backup

Pas mal, merci !

Hors ligne

#55 Le 02/04/2009, à 11:31

gomoz

Re : [script] sauvegarde du /home avec rdiff-backup

Bonjour,

je déterre ce topic car je fais un script de sauvegarde de mon serveur dédié et un problème se pose avec rdiff-backup :
- Je veux une sauvegarde en direct, tous les jours jusque J-30 à même le serveur
- Et en plus, une mini sauvegarde jusque J-7 sur un autre serveur (en cas de disparition des données sur le premier serveur)

Bon et bien sur faut pas que ca prenne trop de charge serveur. L'idéal serait que je face la première sauvegarde puis que "j'exporte" sur l'autre serveur à partir des données déjà extraite par la première sauvegarde.


Vous avez une idée pour faire cette "exportation" ?

Hors ligne

#56 Le 02/04/2009, à 23:29

rangzen

Re : [script] sauvegarde du /home avec rdiff-backup

scp avec certificat et restriction

Hors ligne

#57 Le 12/01/2012, à 23:16

lesebas

Re : [script] sauvegarde du /home avec rdiff-backup

Salut, j'ai pas mal retravaillé ce script pour pouvoir l’exécuter en root (je sauvegarde les fichiers de plusieurs users depuis ma session), et j'ai également ajouté un fichier de log dans lequel je trace les résultats des commandes rdiff-backup.

Le principal problème était de passer en root au milieu du script uniquement si la sauvegarde se lance. J'ai donc isolé les tests dans un script et la sauvegarde en elle même dans un autre. Le premier appelant le deuxième si besoin:

Script 1 (script-rdiff-backup-test):

#!/bin/bash
configFile="/home/commun/sebastien/Sauvegarde/rdiff-backup-manager.conf" #fichier de conf contenant la date de la prochaine sauvegarde
logFile="/home/commun/sebastien/Sauvegarde/logs/log_sauvegarde_"$( date '+%Y')-$( date '+%m')-$( date '+%d')

#Lecture dans un fichier de conf de la date de la prochaine sauvegarde
if test -s $configFile
then
    nextUpdateDate=$(cat $configFile)
    echo "La date de la prochaine sauvegarde est le " $nextUpdateDate 
else
    echo "fichier de conf absent"
    nextUpdateDate=0
fi    
todayDate=$(date '+%Y%m%d')
echo "Nous sommmes le " $todayDate
if  (test $nextUpdateDate -le $todayDate)
then
    #Date dépassée => on propose de faire la sauvegarde
    if zenity --question --text="Faire la sauvegarde automatique maintenant ? (Brancher le Disque Externe auparavant)"
    then
    echo -e "Sauvegarde du " $( date '+%d')-$( date '+%m')-$( date '+%Y')\\r\\r >> $logFile
    ./script-rdiff-backup-sauvegarde
    #suppression des vieux fichiers de log
    testDate=$(date '+%Y%m%d' --date '45 days ago')
    for i in $( ls logs/); do
        annee=$(echo $i | cut -c16-19)
        mois=$(echo $i | cut -c21-22)
        jour=$(echo $i | cut -c24-25)
        date_fichier=$(echo $annee$mois$jour)
        if (test $date_fichier -le $testDate)
        then
            rm logs/$i
        fi
    done
    #mise à jour du fichier de conf avec la date de la prochaine mise à jour
        echo $(date '+%Y%m%d' --date '7 days') > $configFile
    else
        zenity --info --text="La mise à jour sera à nouveau proposée au prochain démarrage."
fi
else
    echo "rien a faire"
fi

Qui s'enchaine avec le script 2 (script-rdiff-backup-sauvegarde):

#!/bin/bash
if [ ! "$SUDO_USER" ]
then
    gksudo -k "$0"
    exit 0
fi
backupDirectory="/media/LUPUS_BCKP/rdiff-backup/"
origDirectory="/home/"
#liste des dossiers a sauvegarder
directoryList="stephanie/Bureau stephanie/.config sebastien/.config commun/ sebastien_mint/.config stephanie_mint/.config"
logFile="/home/sebastien/Sauvegarde/logs/log_sauvegarde_"$( date '+%Y')-$( date '+%m')-$( date '+%d')
    
    echo -e "Dossiers Sauvegardés : \\r"$directoryList\\r\\r"Début de la sauvegarde à "$(date '+%T')\\n >> $logFile
        #verifier la presence du dossier de sauvegarde
        if test -d $backupDirectory
        then  
    #sauvegarde à faire ici !!!
                for i in $directoryList; do
                    nice -n 19 rdiff-backup $origDirectory$i $backupDirectory$i 2>&1 >> $logFile && nice -n 19 rdiff-backup --remove-older-than 1M --force $backupDirectory$i 2>&1 >> $logFile
                done
                zenity --info --text="La sauvegarde est terminée."
            echo -e \\r"Fin de la suvegarde à "$(date '+%T')\\r"La sauvegarde s'est bien terminée" >> $logFile
        else
                zenity --error --text="Dossier de sauvegarde non trouvé."
            echo -e \\r"ERREUR LORS DE LA SAUVEGARDE!!! Dossier de sauvegarde non trouvé" >> $logFile
        fi

Voli voilou pour ce que ça aide ! wink

Dernière modification par lesebas (Le 30/01/2012, à 07:36)


Seb

LMDE

Hors ligne

#58 Le 16/01/2012, à 12:32

HP

Re : [script] sauvegarde du /home avec rdiff-backup

Perso, résultats de backups avec seulement rsync :

# ls -ltr /media/ST360012A/backups/
total 28
drwxr-xr-x 3 dimitri dimitri 4096 2012-01-10 23:16 2
drwxr-xr-x 3 dimitri dimitri 4096 2012-01-11 23:49 3
drwxr-xr-x 3 dimitri dimitri 4096 2012-01-12 07:00 4
drwxr-xr-x 3 dimitri dimitri 4096 2012-01-13 21:47 5
drwxr-xr-x 3 dimitri dimitri 4096 2012-01-14 17:18 6
drwxr-xr-x 3 dimitri dimitri 4096 2012-01-15 22:41 7
drwxr-xr-x 3 dimitri dimitri 4096 2012-01-16 12:23 1
lrwxrwxrwx 1 dimitri dimitri    1 2012-01-16 12:23 LATEST -> 1
# du -hs /media/ST360012A/backups/1
18G     /media/ST360012A/backups/1
# du -hs /media/ST360012A/backups/
19G     /media/ST360012A/backups/

7 backups… 19G, alors qu'un backup unique en pèse 18 ! smile


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#59 Le 24/01/2012, à 21:40

lesebas

Re : [script] sauvegarde du /home avec rdiff-backup

Salut HP

Ok le script est facilement adaptable avec rsync (au passage je viens juste de mettre à jour mon post d'avant, le script est modifié pour supprimer les vieux fichiers de logs).

Par contre je me pose une question.

Si j'ai bien compris, rdiff-backup fait des sauvegardes différentielles donc si je garde un mois de sauvegardes effectuées toutes les semaines à tout moment je peux restaurer 4 versions différentes de fichier (S-1, S-2, S-3 et S-4)? Au passage je ne sais pas comment on fait et je n'ai jamais testé (à creuser... tongue )

De même si j'ai bien compris rsync, il s'agit d'un logiciel de synchronisation... il ne sauvegarde donc que la dernière version d'un fichier en suprimant automatiquement la précédente. Donc si un fichier a été modifié par erreur et que la sauvegarde a eu lieu... impossible de le restaurer? Ce qui expliquerait la différence de taille entre les tes sauvegardes?

J'ai bien compris, ou c'est autre chose? Quelqu'un connait-il bien le sujet?

Dernière modification par lesebas (Le 24/01/2012, à 21:43)


Seb

LMDE

Hors ligne

#60 Le 25/01/2012, à 00:15

HP

Re : [script] sauvegarde du /home avec rdiff-backup

lesebas a écrit :

De même si j'ai bien compris rsync, il s'agit d'un logiciel de synchronisation... il ne sauvegarde donc que la dernière version d'un fichier en suprimant automatiquement la précédente. Donc si un fichier a été modifié par erreur et que la sauvegarde a eu lieu... impossible de le restaurer?

Reste la sauvegarde du jour d'avant… pas pour rien que je fais des sauvegardes sur 7 jours.

lesebas a écrit :

Ce qui expliquerait la différence de taille entre les tes sauvegardes?

Euh… non… on va la refaire :

# du -hsl /media/ST360012A/backups/*
18G     /media/ST360012A/backups/1
18G     /media/ST360012A/backups/2
18G     /media/ST360012A/backups/3
18G     /media/ST360012A/backups/4
18G     /media/ST360012A/backups/5
18G     /media/ST360012A/backups/6
18G     /media/ST360012A/backups/7
0       /media/ST360012A/backups/LATEST
Sys. de fichiers            Taille  Uti. Disp. Uti% Monté sur
/dev/sdd5             294G   26G  253G  10% /media/ST360012A

Sachant que sur le disque, y a pas que mes backups… même si à terme, ça devrait.


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#61 Le 25/01/2012, à 21:19

lesebas

Re : [script] sauvegarde du /home avec rdiff-backup

OK j'avais pas compris! big_smile

En fait tu dis q'un seul backup avec 7 jours d'ancienneté via rdiff-backup utilise 19Go alors que pour faire la même chose avec rsync il te faut 18Go x 7 = 126Go, donc merci la sauvegarde différentielle.

PS: pour restaurer un fichier a une date précise:

rdiff-backup -r 3D

Ici l'exemple est pour trois jours (3D = 3 days) mais on peut spécifier tout un tas de format de date, extrait de la doc:

-r, --restore-as-of restore_time
              Restore the specified directory as it was  as  of  restore_time.
              See  the TIME FORMATS section for more information on the format
              of restore_time, and see the RESTORING section for more informa-
              tion on restoring.

TIME FORMATS

       rdiff-backup uses time strings in two  places.   Firstly,  all  of  the
       increment  files rdiff-backup creates will have the time in their file-
       names in  the  w3  datetime  format  as  described  in  a  w3  note  at
       http://www.w3.org/TR/NOTE-datetime.     Basically    they   look   like
       "2001-07-15T04:09:38-07:00", which  means  what  it  looks  like.   The
       "-07:00" section means the time zone is 7 hours behind UTC.

       Secondly, the -r, --restore-as-of, and --remove-older-than options take
       a time string, which can be given in any of several formats:

       1.     the string "now" (refers to the current time)

       2.     a sequences of digits, like "123456890" (indicating the time  in
              seconds after the epoch)

       3.     A string like "2002-01-25T07:00:00+02:00" in datetime format

       4.     An interval, which is a number followed by one of the characters
              s, m, h, D, W, M, or  Y  (indicating  seconds,  minutes,  hours,
              days, weeks, months, or years respectively), or a series of such
              pairs.  In this case the string refers to the time that preceded
              the  current  time by the length of the interval.  For instance,
              "1h78m" indicates the time that was one hour and 78 minutes ago.
              The calendar here is unsophisticated: a month is always 30 days,
              a year is always 365 days, and a day is always 86400 seconds.

       5.     A date format of the form YYYY/MM/DD, YYYY-MM-DD, MM/DD/YYYY, or
              MM-DD-YYYY,  which  indicates  midnight  on the day in question,
              relative  to  the  current  timezone  settings.   For  instance,
              "2002/3/5",  "03-05-2002",  and  "2002-3-05" all mean March 5th,
              2002.

       6.     A backup session specification which is a  non-negative  integer
              followed  by  'B'.  For instance, '0B' specifies the time of the
              current mirror, and '3B' specifies the time of  the  3rd  newest
              increment.

Dernière modification par lesebas (Le 25/01/2012, à 21:22)


Seb

LMDE

Hors ligne

#62 Le 25/01/2012, à 21:46

HP

Re : [script] sauvegarde du /home avec rdiff-backup

lesebas a écrit :

OK j'avais pas compris! big_smile

En fait tu dis q'un seul backup avec 7 jours d'ancienneté via rdiff-backup utilise 19Go alors que pour faire la même chose avec rsync il te faut 18Go x 7 = 126Go, donc merci la sauvegarde différentielle.

Encore pas… puisque je n'utilise que rsync, et çà, je l'avais dit. rdiff-backup n'a jamais fonctionné chez moi, et j'utilise rsync depuis 2007 (en plus j'étais sous Mac, à l'époque).


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#63 Le 25/01/2012, à 23:01

lesebas

Re : [script] sauvegarde du /home avec rdiff-backup

OK,

Mais on est bien d'accord, une copie avec rsync fait 18Go donc pour 7 jours il te faut 126 Go... donc tu préfererais faire du différentiel...


Seb

LMDE

Hors ligne

#64 Le 25/01/2012, à 23:04

HP

Re : [script] sauvegarde du /home avec rdiff-backup

Comment, si une copie fait 18G, je n'occuperais que 26G du disque dur ?

lesebas a écrit :

donc tu préfererais faire du différentiel.

La restauration faite à partir de ce type de sauvegarde nécessite la recopie sur disque de la dernière sauvegarde complète et de la sauvegarde différentielle la plus récente.

Ah non ! Surtout pas… malheureux, je suis bien comme je suis wink.
Il me suffit des outils de base du terminal pour faire une restauration… quelques cd, un cp et basta.


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#65 Le 25/01/2012, à 23:26

lesebas

Re : [script] sauvegarde du /home avec rdiff-backup

HP a écrit :

7 backups… 19G, alors qu'un backup unique en pèse 18 !

Bon c'est pas grave je n'y comprend pas grand chose à ton truc... de toutes façons on s'éloigne du sujet du post qui est bien un script pour automatiser une sauvegarde avec rdiff-backup. Maintenant libre à toi de le modifier pour l'utiliser avec rsync (qui reste tout de même un outil de synchronisation dévoyer pour faire de la sauvegarde wink )


Seb

LMDE

Hors ligne

#66 Le 25/01/2012, à 23:44

HP

Re : [script] sauvegarde du /home avec rdiff-backup

lesebas a écrit :

[…] on s'éloigne du sujet du post qui est bien un script pour automatiser une sauvegarde avec rdiff-backup. […] rsync (qui reste tout de même un outil de synchronisation dévoyer pour faire de la sauvegarde wink )

Requirements:
Python v2.2 or later (see http://www.python.org)
librsync v0.9.7 or later (note there is a known bug with patch for large file support)

Désolé, mais rdiff-backup ne semble pas savoir faire grand chose de plus que rsync… si ce n'est qu'il ajoute une belle couche de Python autour… d'autant qu'il utilise les librsync, donc bon.

Faudra m'expliquer les différences subtiles entre synchronisation et backup, ça risque de grandement m'enrichir smile.

Dernière modification par HP (Le 25/01/2012, à 23:45)


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#67 Le 26/01/2012, à 21:15

lesebas

Re : [script] sauvegarde du /home avec rdiff-backup

Différence entre synchronisation et backup:

Un backup est unidirectionnel, c'est à dire qu'il copie la source vers une cible, une modification de la cible n'a aucun impact sur la source.

Un synchronisation consite à rendre 2 espaces distincts parfaitement identiques, toute modification sur un des 2 espaces entrainera une modification à l'identique du deuxième lors de la prochaine synchro. C'est le principe utilisé avec les assistants personnels (type BB) que l'on synchronise avec un logiciel de messagerie.

La confusion vient du fait que rsync est un logiciel de synchronisation unidirectionnel (en fait rsync veut dire "remote synchronisation" soit en traduction littérale "synchronisation à distance", mais il vaudrait mieux parler de "copie incrémentale à distance"). Effectivement rsync recopie une source vers une destination mais le fait de manière incrémentale, c'est à dire qu'il ne recopie que ce qui a changé (plutôt que la méthode bourrin qui consisterait à tout recopier en écrasant les fichiers: ça a l'avantage de limiter le transfert de donnés au strict nécessaire... plutôt intéressant quand on utilise des liaisons à faible débit).

Par contre rsync n'est pas capable nativement de conserver l'historique des modifications, soit on applique ton principe et on fait autant de copie que de nombre d'historique souhaité (copie quotdienne tournante sur 7 fichiers pour garder 7 jours d'arriéré), soit tu mets une couche de python autour pour ne conserver qu'une copie compléte de la dernière version plus une image des seuls incréments.

En conclusion, oui rdiff-backup s'appuie sur rsync pour le coté incrémental mais en plus il conserve l'historique avec un espace plus réduit.

Dernière modification par lesebas (Le 26/01/2012, à 21:26)


Seb

LMDE

Hors ligne

#68 Le 26/01/2012, à 21:25

HP

Re : [script] sauvegarde du /home avec rdiff-backup

lesebas a écrit :

En conclusion, oui rdiff-backup s'appuie sur rsync pour le coté incrémental mais en plus il conserve l'historique avec un espace plus réduit.

Espace plus réduit, ça doit se compter en terme de queues de cerises… quand dans 19G je place 7 backups de 18G… qui sont complets, et ne nécessitent donc aucune manip complexe (un simple cp) pour les réinjecter. Mais quand on s'accroche aux mythes…

La seule supériorité de la méthode différentielle (telle que décrite dans ce sujet) ce serait pour effectuer des backups vers des systèmes de fichiers archaïques ; comme, par exemple, FAT32.


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#69 Le 26/01/2012, à 21:33

lesebas

Re : [script] sauvegarde du /home avec rdiff-backup

Je ne vois pas comment tu fais tenir 7 x 18Go dans 19Go vu que rsync n'a pas d’algorithme de compression... si tu copie 18Go tu récupères 18Go ou alors y'a un truc qui m'échappe hmm

Mais bon j'arrête là ça polue trop ce post, chacun son point de vue wink


Seb

LMDE

Hors ligne

#70 Le 26/01/2012, à 21:37

HP

Re : [script] sauvegarde du /home avec rdiff-backup

lesebas a écrit :

Je ne vois pas comment tu fais tenir 7 x 18Go dans 19Go vu que rsync n'a pas d’algorithme de compression...

Y a pas que la compression… et oui, y a bien un truc qui t'échappe… comme quoi, les meilleurs trucs de Linux/UNIX sont si peu connus sad.

lesebas a écrit :

Mais bon j'arrête là ça polue trop ce post, chacun son point de vue.

C'est sûr que si des trucs techniques de ce genre t'échappent, alors ça relève du point de vue wink.


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#71 Le 26/01/2012, à 22:39

lesebas

Re : [script] sauvegarde du /home avec rdiff-backup

HP a écrit :

Y a pas que la compression… et oui, y a bien un truc qui t'échappe… comme quoi, les meilleurs trucs de Linux/UNIX sont si peu connus

C'est marrant  t'as l'air de dire que tu connais plein de trucs mais tu n'expliques rien... je n'ai pas la prétention de tout connaitre loin de là donc je suis preneur de plus de détails... tu fais comment? smile

Dernière modification par lesebas (Le 27/01/2012, à 12:56)


Seb

LMDE

Hors ligne

#72 Le 29/01/2012, à 10:02

grandtoubab

Re : [script] sauvegarde du /home avec rdiff-backup

Salut,
Pour faire ça j'utilise Grsync http://doc.ubuntu-fr.org/grsync


Linux tout seul sur HP Pavilion DV7 et Acer Aspire T650, Canon MG3650 en wifi
Debian 11 Bullseye Gnome/Xorg, Gnome/Wayland avec SDDM
https://bidouilledebian.wordpress.com/
ON M'A VU DANS LE VERCORS, SAUTER A L'ELASTIQUE..... J'AI DANS LES BOTTES DES MONTAGNES DE QUESTIONS....

Hors ligne

#73 Le 29/01/2012, à 11:22

sonn2

Re : [script] sauvegarde du /home avec rdiff-backup

perso ma commande de backup c'est :

rsync -e ssh -a --progress --stats --compress --delete --backup --backup-dir="../sup/`date +%Y-%m-%d`/" \
/home/julien/sauv_1/ \
julien@127.0.0.1:/home/julien/sauv_2/actuel/

Que voulez-vous de plus? big_smile vous pouvez meme faire une sauvegarde sur serveur distant ou local tongue
(en train de chercher pour le combiner avec une archives .tar wink )

Dernière modification par sonn2 (Le 29/01/2012, à 15:54)

#74 Le 29/01/2012, à 19:07

lesebas

Re : [script] sauvegarde du /home avec rdiff-backup

Salut,

Bon donc là ou j'ai dit une bétise c'est qu'il y a bien un algorithme de compression dans Rsync. Par contre je ne comprends pas bien si la compression intervient juste dans le transfert des paquets ou sur l'image elle même. Extrait du manuel sur le site de rsync (http://rsync.samba.org/documentation.html)

rsync -avz foo:src/bar /data/tmp
This would recursively transfer all files from the directory src/bar on the machine foo into the /data/tmp/bar directory on the local machine. The files are transferred in "archive" mode, which ensures that symbolic links, devices, attributes, permissions, ownerships, etc. are preserved in the transfer. Additionally, compression will be used to reduce the size of data portions of the transfer.

sonn2: ta sauvegarde est compressée? Tu empiles toutes les sauvegardes par date? Est-ce que chaque sauvegarde a à peu prés la même taille?


Seb

LMDE

Hors ligne

#75 Le 29/01/2012, à 19:34

sonn2

Re : [script] sauvegarde du /home avec rdiff-backup

Non, non il n'y a compression QUE PENDANT l'envoit wink
La hiérarchie de mon répertoire donne ça :
/home
-> A garder/
...................tous mes trucs tongue
-> Sauvegarde/
........................actuel/
...................................répertoire "A garder" copier EXACTEMENT
........................sup/
...............................2012/01/20/
..................................................fichier supprimé de "A garder" depuis la dernière sauvegarde!!!!!!! (j'insiste sur ce point, ce n'est pas la date de suppresion!!! )
...............................2012/01/23/
...............................2012/01/27/
...............................2012/01/28/

ta sauvegarde est compressée?
-Non uniquement pendant l'envoi.

Tu empiles toutes les sauvegardes par date?
-Euh... J'ai répondu à ta question?

Est-ce que chaque sauvegarde a à peu prés la même taille?
-Ca dépend de combien de fichiers tu supprime par jour et si tu fait des sauvegardes regulières smile

Personnelement j'utilise cron (pour le moment )
et j'aimerais effectivement passer en archive .tar sujet ouvert
Et j'ai en cours en codage un gros script qui permet en gros de gérer mon pc, qui feras les sauvegarde de façon régulière et effaceras automatiquement les répertoires trop anciens wink
(c'est dans ma signature, bien que le script étant en MAJ le code de ma page est incorrect >_< )

Voilà, voilà big_smile

Après vérification, non rsync ne permet que de compresser pendant l'envoi pas à l'arriver...
il faut donc utiliser une autre commande après ^^ mais le tout est de savoir laquelle permet de garder ce qui ne doit pas etre modifié, juste de mettre à jour l'archive....
Si quelqu'un as une idée, je suis preneur wink

Dernière modification par sonn2 (Le 29/01/2012, à 19:47)