Evolution #3445
migration23.sh : evolution sur le rsync de savescribedata()
Description
Demande concernant la fonction savescribedata()
Sur une migration, que nous avions lancé le soir avant l'intervention, nous sommes tombé sur une la sauvegarde stoppé le matin à la fin de /home/a/* , le rsync ayant rencontré un fichier qu'il n'a pas réussi à copier.
J'ai utilisé le script migration23.sh sans sauvegarder /home, tout c’est bien passé jusqu'au bout.
J'ai ensuite mis dans un script à part le rsync de /home :
root@ng371378:~# more rsync.sh
for abc in `find /home -maxdepth 1 -name '?' | sort`;do
echo -n "."
rsync -cav --log-file /tmp/rsync.log --exclude=MailDir \
--exclude=IntegrDom --exclude=.scanned* $abc "/media/migration/home" >/dev/null
testcmd $? "Erreur lors de la sauvegarde des données, consulter le fichier $RSYNC_LOG"
done
J'ai rien changé à part l'exclude des .scanned pour gagner un peu de temps.
La en fait, à chaque dossier de fin de lettre ('a','b'...), le rsync retourne une erreur, et dans mon script de test la fonction testcmd forcément "bug" car je ne l'ai pas inclue.
Cela semble vouloir dire qu'en fait, ce n'est pas le rsync qui quitte, mais la fonction "testcmd" qui fait quitter la boucle for, car rsync rencontre un fichier qu'il ne peut copier, comme celui-ci :
..rsync: mkstemp "/media/migration/scribe-0371378X/home/a/annie.parot/perso/Réseau/sauvegardebcdiserv/data/.Autorite.txt.QWVrRz" failed: No such file or directory (2)
Donc deux demandes :
*Ne peut t’on pas dans le rsync exclure le ".scanned", je ne pense pas que cela ait par la suite des effet indésirable et fait gagner du temps sur les serveurs peu rapide.
*N'y a t-il pas moyen de modifier la fonction "testcmd" pour qu'elle notifie simplement l'erreur sans faire quitter la boucle for, car de mon point de vue, le fait que le rsync puisse se faire jusqu'au bout avec dans le fichier de log les erreurs rencontrés est plus pertinent.
Car en cas d'arrêt, l'intervention prévu sur place dans le collège se retrouve bloqué, les données mettant souvent beaucoup de temps à être sauvegardés sur les anciens scribes...
Demandes liées
Révisions associées
- migration23.sh : exclusion des .scanned lors du rsync des rép perso
Ref #3445 @10m
- migration23.sh : suppression du exit en cas d'erreur lors de la sauvegarde (rsync)
Fixes #3445 @15m
- migration23.sh : masquer les erreurs de restoration d'acl sur des .scanned
=> VERSION : "20120521"
Ref #3445 @10m
Historique
#1 Mis à jour par Joël Cuissinat il y a presque 12 ans
- Statut changé de Nouveau à Accepté
- Assigné à mis à Joël Cuissinat
- Temps estimé mis à 0.50 h
#2 Mis à jour par Joël Cuissinat il y a presque 12 ans
- Statut changé de Accepté à Résolu
- % réalisé changé de 0 à 100
Appliqué par commit 0052787f97382248678efa69815bc01504fac9da.
#3 Mis à jour par Joël Cuissinat il y a presque 12 ans
- Statut changé de Résolu à Fermé
script modifié et publié le 21.05.2012
#4 Mis à jour par Nicolas ROBIN il y a presque 12 ans
Le répertoire de destination du rsync est "/media/migration/home", ce qui pose problème car la fonction de restauration restorescribedata() effectue un rsync sur :
rsync -cav --log-file $RSYNC_LOG --ignore-existing "$1/home/" /home/ >/dev/null
Il faudrait donc passer la destination du rsync de la fonction savescribedata() sur "$1/home/" :
--exclude=IntegrDom --exclude=.scanned* $abc "$1/home" >/dev/null