#1 Le 07/08/2008, à 15:17
- roger64
(résolu) script rdiff-backup : au sujet de la périodicité
Bonjour
C'est un script qui a été posté sur le site il y a quelques mois et l'auteur est parti, je pense, participer aux jeux Olympiques. En tout cas, il ne répond plus et c'est bien dommage.
Il convient tout à fait à mes besoins. Il fonctionne. Il y a une chose que je n'ai pas compris :
lorsque l'on fait sa première sauvegarde, rdiff-backup enregistre sur le fichier de configuration la date d'exécution. Et tant qu'il n'arrive pas à sept jours, il déclare qu'il n'y a rien à faire.
Pour comprendre, j'aimerais savoir à quel emplacement exact rdiff-backup enregistre la date du dernier backup (et sous quelle forme). Et comment je ferais si je voulais avoir des sauvegardes tous les cinq jours?
N'hésitez pas à enfoncer le clou, j'ai la tête dure.
Voici le script en question, il est court. Merci d'avance de votr aide.
#!/bin/bash
configFile="/home/user/bin/rdiff-backup-manager.conf"
#fichier de conf contenant la date de la prochaine sauvegarde
backupDirectory="/media/SECOND/rdiff-backup-user/"
origDirectory="/home/user/"
#liste des dossiers a sauvegarder (ils sont tous sous /home/user/)
directoryList="sécurité Bureau Documents .mozilla .mozilla-thunderbird"
#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
#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 && nice -n 19 rdiff-backup --remove-older-than 1M --force $backupDirectory$i
done
zenity --info --text="La sauvegarde est terminée."
#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 --error --text="Dossier de sauvegarde non trouvé."
fi
else
zenity --info --text="La mise à jour sera à nouveau proposée au prochain démarrage."
fi
else
echo "rien a faire"
fi
Dernière modification par roger64 (Le 07/08/2008, à 19:08)
Hors ligne
#2 Le 07/08/2008, à 16:04
- whalexis
Re : (résolu) script rdiff-backup : au sujet de la périodicité
Salut,
#mise à jour du fichier de conf avec la date de la prochaine mise à jour
echo $(date '+%Y%m%d' --date '7 days') > $configFile
Ce code te génère ta prochaine date de mise à jour et le stockera dans le fichier $configFile.
Si tu veux 5 jours, tu remplaces 7 days par 5 days, si tu veux 12 jours...
configFile="/home/user/bin/rdiff-backup-manager.conf"
Ce code te donne le nom de ton fichier de config qui est utilisé au dessus.
Et pour savoir sous quelle forme sera stockée ta date, lance ça
echo $(date '+%Y%m%d' --date '7 days')
dans la console et tu verras par toi même.
A+
Alexis
#3 Le 07/08/2008, à 19:08
- roger64
Re : (résolu) script rdiff-backup : au sujet de la périodicité
bonjour
merci Alexis de tes précisions.
Le fait de voir une expression abstraite de ce genre "cracher" une date me parait un peu miraculeux.
Il reste une petit souci qui n'a rien à voir avec la date. Le script est, semble t'il, sensible aux accents et demande l'UTF8.
Je peux continuer à tenter de le domestiquer. Encore merci. résolu.
Hors ligne