#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 !
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 !
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... )
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
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.
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!
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
OK j'avais pas compris!
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 ?
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 .
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
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 )
Seb
LMDE
Hors ligne
#66 Le 25/01/2012, à 23:44
- HP
Re : [script] sauvegarde du /home avec rdiff-backup
[…] 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 )
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 .
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
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
Mais bon j'arrête là ça polue trop ce post, chacun son point de vue
Seb
LMDE
Hors ligne
#70 Le 26/01/2012, à 21:37
- HP
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...
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 .
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 .
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
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?
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? vous pouvez meme faire une sauvegarde sur serveur distant ou local
(en train de chercher pour le combiner avec une archives .tar )
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
La hiérarchie de mon répertoire donne ça :
/home
-> A garder/
...................tous mes trucs
-> 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
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
(c'est dans ma signature, bien que le script étant en MAJ le code de ma page est incorrect >_< )
Voilà, voilà
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
Dernière modification par sonn2 (Le 29/01/2012, à 19:47)