Bonjour,
Je m’essaye, laborieusement, au script bash. Pour automatiser mes sauvegardes, je suis parti d’un petit script qui me paraissait simple, publié dans une revue de grande diffusion… qui ne fonctionne pas correctement (le script, pas la revue). J’ai corrigé quelques petit problèmes. Mais cale lamentablement sur la suite.
La sauvegarde se fait par deux petits scripts, l’un hebdomadaire, qui fait une sauvegarde complète le vendredi (fonctionne correctement), l’autre faisant une sauvegarde incrémentale tout les autres jours de la semaine. Le samedi, toutes les sauvegardes incrémentales de la semaine précédente sont effacées.
Voici le script
[code]#!/bin/bash
echo ‘### Sauvegarde incrémentale journalière’
Récupération du nom du jour courant et du jour précédent
today=$(date +%A)
yesterday=$(date --date=“yesterday” +%A)
Récupération du nom du répertoire contenant la sauvegarde de la veille
linked_src="/media/Sauvegarde/sauv_jpm2/incrementale/$yesterday"
if [ today = ‘samedi’ ]; then
linked_src="/media/Sauvegarde/sauv_jpm2/complete"
# Éffacement des sauvegardes incrémentales
for rep in lundi mardi mercredi jeudi samedi dimanche
do
echo "Éffacement de /media/Sauvegarde/sauv_jpm2/incrementale/$rep"
rm -rf /media/Sauvegarde/sauv_jpm2/incrementale/$rep/*
done
fi
rsync -arHu --delete --progress --stats --link-dest=$linked_src /home/jp/ /media/Sauvegarde/sauv_jpm2/incrementale/$today [/code]
Et voici le lancement
[code]bash -x sauvegarde_daily.sh
- echo ‘### Sauvegarde incrémentale journalière’
Sauvegarde incrémentale journalière
++ date +%A
- today=samedi
++ date --date=yesterday +%A - yesterday=vendredi
- linked_src=/media/Sauvegarde/sauv_jpm2/incrementale/vendredi
- ‘[’ today = samedi ‘]’
- rsync -arHu --delete --progress --stats --link-dest=/media/Sauvegarde/sauv_jpm2/incrementale/vendredi /home/jp/ /media/Sauvegarde/sauv_jpm2/incrementale/samedi
sending incremental file list
–link-dest arg does not exist: /media/Sauvegarde/sauv_jpm2/incrementale/vendredi
./
deleting Nouveau[/code]
Sachant que les exemples donnés ont été fait un samedi.
Le renseignement des jours se fait bien
La définition de linked_src se fait bien pour sa première fois,
Mais, comme nous sommes un samedi, cette variable doit être re-écrite après le test if. Il semble que cela ne se fasse pas puisque dans la ligne Rsync, je retrouve un link-dest pointant vers un vendredi.
Néanmoins, l’effacement des répertoires journalier se fait le samedi, deleting Nouveau est un marqueur que j’ai mis dans tous les répertoires. Mais, l’effacement ne se fait que pour le samedi alors qu’il devrait avoir lieu, si je comprends bien pour tous les répertoires journaliers.
Je me suis longuement penché sur de la documentation sur bash mais n’ai pas réussi à trouver l’explication de ces dysfonctionnements. J’ai bien sûr vérifié avec soin tout les noms des différents répertoires impliqués dans l’affaire.
Merci de votre aide et si possible de vos explications.