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.

#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. smile

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. smile
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