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 23/11/2009, à 22: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, à 12:01

michel_04

Re : rsync ne se comporte pas correctement

Bonjour,

Tu as regardé cette page de la Documentation ?

A+

Hors ligne

#3 Le 24/11/2009, à 13: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 tongue

Dernière modification par Express (Le 24/11/2009, à 13:14)

Hors ligne

#4 Le 24/11/2009, à 16: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 smile

Hors ligne

#5 Le 24/11/2009, à 16: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, à 19: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, à 10: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, à 15: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é hmm
(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 smile

Hors ligne

#9 Le 26/11/2009, à 14: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, à 15:04

BobLeNoOb

Re : rsync ne se comporte pas correctement

sad Toujours personne ? Snif

Hors ligne

#11 Le 06/12/2009, à 21:15

BobLeNoOb

Re : rsync ne se comporte pas correctement

Up tongue

Hors ligne