Pages : 1
#1 Le 23/11/2009, à 21:46
- BobLeNoOb
rsync ne se comporte pas correctement
Bonsoir à tous,
n'ayant pas trouvé de réponse sur ce forum (ni sur google d'ailleurs), je vous soumets mon "petit" problème.
Je désire mettre en place un script de sauvegarde avec rsync depuis la Dédibox sous 8.04.3 LTS server de mes amis vers ma machine à la maison (9.10 server).
J'ai donc fait un petit script qui devrait me permettre de rapatrier les dossiers sélectionnés depuis la Dédibox.
La connexion se fait via SSH avec clé publique sans mot de passe, configurée correctement.
J'ai mis toute une série de paramètres pour me permette de déboguer.
Je lance le script en tant que root, en me connectant avec un utilisateur dédié pour le rsync, mais le résultat est aléatoire (mais toujours le même en fonction du dossier).
Dans certains cas, j'obtiens la totalité du dossier en cours, si celui-ci ne comporte pas de sous-dossiers.
Dans tous les cas, l'intégralité des sous-dossiers est crée sur la machine de sauvegarde.
Pour /etc, je récupère seulement une partie des fichiers.
Pour un autre dossier, je ne reçois que la structure des sous-dossiers.
Les derniers messages que j'obtiens sont:
building file list ...
1344 files to consider
un ctrl-c me retourne le message d'erreur suivant:
rsync error: unexplained error (code 130) at rsync.c(271) [sender=2.6.9]
Bien sûr, un rsync en local fontionne parfaitement.
De plus, est-il possible de conserver les chown/chgrp originaux sur la machine de sauvegarde (les UID/GID, plutôt que d'utiliser ceux de l'utilisateur local de la machine de sauvegarde)
#!/bin/bash
SOURCES="/etc /home/user1 /home/user2"
#Params de ma machine à la maison
RMACHINE="xx.xxx.xxx.xxx"
RPORT="xxxxx"
RUSER="dedibox"
RTARGET="/home/dedibox/dedibox"
RKEY="/root/.rsync_dedibox/rsync-key"
EXCLUDE_FILE="/root/.rsync_dedibox/exclude_file.txt"
VERBOSE="-v"
OPTIONS_RSYNC="-arlptgoEzc --stats --progress --recursive --devices --partial --log-file=./rsync_log --itemize-changes"
(...)
for source in $SOURCES; do
# Crée les dossiers dans $RTARGET pour imiter la hiérarchie des dossiers source
#Cette partie fonctionne très bien dans tous les cas
if ! ssh -i $RKEY $RUSER@$RMACHINE -p $RPORT "test -d $RTARGET/$source"; then
ssh -i $RKEY $RUSER@$RMACHINE -p $RPORT "mkdir -p $RTARGET/$source"
fi
#La partie qui pose problème
rsync $VERBOSE $EXCLUDE $OPTIONS_RSYNC -e "ssh -i $RKEY -p $RPORT" $source/ $RUSER@$RMACHINE:$RTARGET$source
done
exit 0
Merci pour votre aide
Hors ligne
#2 Le 24/11/2009, à 11:01
- michel_04
Re : rsync ne se comporte pas correctement
:D
De la bonne manière de poser les questions - Trouver de l'aide grâce au Groupe des Parrains Linux - Le Pacte des Gnous
PCs sous Debian Stable & Debian Sid.
Hors ligne
#3 Le 24/11/2009, à 12:13
- Express
Re : rsync ne se comporte pas correctement
rsync $VERBOSE $EXCLUDE $OPTIONS_RSYNC -e "ssh -i $RKEY -p $RPORT" $source/ $RUSER@$RMACHINE:$RTARGET$source
J'aurrai fais :
rsync $OPTIONS_RSYNC -e $VERBOSE $EXCLUDE "ssh -i $RKEY -p $RPORT" $source $RUSER@$RMACHINE:$RTARGET
Mais j'ai dûe mal à comprendre ta variable $sources et puis aussi la Destination
Dernière modification par Express (Le 24/11/2009, à 12:14)
Hors ligne
#4 Le 24/11/2009, à 15:10
- BobLeNoOb
Re : rsync ne se comporte pas correctement
@michel_04
Oui, j'avais regardé, mais cela n'a rien apporté.
J'ai essayé diverses options, de la plus simple juste avec le -a jusquà celles que j'ai mis.
@Express
SOURCES="/etc /home/user1 /home/user2"
for source in $SOURCES;
$source est une seule "instance" de dossier, la liste étant dans $SOURCES séparée d'un espace par dossier
Je mets $RTARGET$source car je reproduis la structure du serveur dans "/home/dedibox/dedibox" de la machine de sauvegarde user dedibox, dossier dedibox, pour ne pas mélanger les dossiers du serveur avec ceux de la machine de backup, par exemple le dossier des clés ssh...
"/home/dedibox/dedibox" de la machine de sauvegarde est le "/" du serveur en gros.
Je ne sauvegarde pas l'ensemble de la machine, ni même tous les /home.
Seuls /etc, le /var/www, quelques home, les bdd...
Le problème ne vient pas d'une mauvaise configuration à proprement parler.
Le rsync marche en local, en dry-run, les sous-dossiers sont recréés à distance sur la machine de sauvegarde, mais le peuplement avec les fichiers ne se fait pas correctement.
Certains sont transférés, d'autres non et cela fait bloquer rsync.
Pourquoi un transfert partiel des fichiers ?
Pourquoi la structure des dossiers est recrée mais ça bloque au niveau des fichiers ?
Meci en tout cas à vous deux
Hors ligne
#5 Le 24/11/2009, à 15:26
- nilux17
Re : rsync ne se comporte pas correctement
je suis egalement partisant du :
rsync $VERBOSE $EXCLUDE $OPTIONS_RSYNC -e "ssh -i $RKEY -p $RPORT" $source $RUSER@$RMACHINE:$RTARGET
tu utilises beaucoup d'options que je ne connais pas comme ca de tête ^^,
qu'est ce qui ne fonctionne pas ?
Hors ligne
#6 Le 24/11/2009, à 18:39
- BobLeNoOb
Re : rsync ne se comporte pas correctement
J'ai effectué la modification de la ligne du rsync comme vous me le conseilliez...
Le résultat est identique certes, mais ne résout en aucun cas mon problème:
même si le --dry-run s'effectue correctement, même si la structure de dossiers est créée côté machine de sauvegarde, les fichiers ne sont pour la plupart pas transférés, j'ai par exemple le contenu d'un petit site web avec 96 fichiers dont la structure de dossier est créée, mais aucun fichier transféré.
Je lance mon script en tant que root, il devrait accéder à tout.
C'est à chaque fois le même problème.
Pourquoi la structure est créée et seulement un peu ou aucun dees fichiers est transféré ? (toujours les mêmes !)
Pourquoi rsync bloque t'il même avec peu de fichiers ?
Hors ligne
#7 Le 25/11/2009, à 09:42
- nilux17
Re : rsync ne se comporte pas correctement
A mon avis, tout tes problemes viennent de la :
OPTIONS_RSYNC="-arlptgoEzc --stats --progress --recursive --devices --partial --log-file=./rsync_log --itemize-changes"
en fait, tu fais -a, -a equivaut à "-rlptgoD", donc, -ar ce n'est pas bon !
en suite, tu remets --recursive, ce qui equivaut aussi à -r ....
et ce que tout simplement tu pourrait pas faire OPTIONS_RSYNC="-a --del" ?
--progress, c'est bien quand on le fait à la main, mais dans un script...
Hors ligne
#8 Le 25/11/2009, à 14:49
- BobLeNoOb
Re : rsync ne se comporte pas correctement
...même problème, même punition...
Cela ne vient pas des paramètres !
Par exemple, j'ai un site web dans /var/www/site.
Tous les sous-dossies sont en 755, tous les fichiers sont en 644, tous appartiennent à www-data:www-data...
Quels que soient les paramètres, j'obtiens la structure des dossiers côté machine de sauvegarde, mais aucun fichier.
Dans certains cas, pour d'autres dossiers, j'ai cette structure de dossiers (DANS TOUS LES CAS) et seulement une partie des fichiers.
La question n'est pas "quels paramètres dois-je mettre ?" puisque qu'un simple -a plante...
Y'aurait-il un problème d'incompabilité de version entre les 2 rsync ?
Un port obscur à ouvrir en plus du ssh ?
Je suis un peu paumé
(Essayez de lire mon premier post dans ce thread, j'y ai dérit mon problème précisément)
Néanmoins, merci à tous de vous pencher sur mon problème
Hors ligne
#9 Le 26/11/2009, à 13:40
- BobLeNoOb
Re : rsync ne se comporte pas correctement
Un petit upounet ?
Dois-je demander à un marabout ou à un exorciste ?
Hors ligne
#10 Le 29/11/2009, à 14:04
- BobLeNoOb
Re : rsync ne se comporte pas correctement
Toujours personne ? Snif
Hors ligne
#11 Le 06/12/2009, à 20:15
- BobLeNoOb
Re : rsync ne se comporte pas correctement
Up
Hors ligne
Pages : 1