Page 1 of 1

[RESOLU] Error Rsync

Posted: 14 Aug 2014 20:15
by ernie
Bonsoir

J'ai fait un rsync de mon nas vers un disque en firewire avant de me lancer dans l'installation de thebrig.

Tout semble s'etre bien passé à part la dernière action du fichier information:

2014/08/14 19:31:02 [6405] rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1165) [sender=3.1.0]

J'ai des milliers de lignes avant, comment identifier dans le fichier log téléchargé les erreurs ? code 23 ne donne que la ligne ci dessus et pas de ligne avec error.

J'ai utiliser le rsync local du webgui, avec seulement l'option archive cocher.

Merci de votre aide

Re: Error Rsync

Posted: 14 Aug 2014 23:34
by mtiburs
Bonsoir,

Est-ce que vous connaissez un peu de ligne de commande ?

Si vous avez un accès ssh possible, faites votre rsync depuis la console, vous comprendrez mieux le soucis, de plus, vous pouvez envoyer la sortie dans un fichier et l'analyser tranquillement.

Re: Error Rsync

Posted: 15 Aug 2014 08:52
by ernie
Bonjour

oui je connais un peu les lignes de commandes (merci fedora).

Par contre il y a énormément d'option pour rsync et je ne sais pas lesquelles utiliser.

Si je souhaite sauvegarder régulirement mon nas, faut il aussi passer par une ligne de commande dans le cron plutot que l'interface rsync ?

Quelle option utiliser pour sauvegarder 1 fois par mois mes données ?

Merci

Re: Error Rsync

Posted: 15 Aug 2014 10:41
by sleid
"J'ai utiliser le rsync local du webgui, avec seulement l'option archive cocher"

Il faut quand même conserver le temps, les permissions, voire les attributs étendus.
ET bien entendu l'utilisateur root.

Re: Error Rsync

Posted: 15 Aug 2014 12:52
by mtiburs
Bonjour,

Pour la source s'agit-il d'un module ?, le mieux est d'en faire un en lecture seule (comme ça on élimine un problème potentiel)

taper rsync adr-ip:: depuis une machine linux (pour voir si votre module est bien vu "par le autre")
(adr::ip sera l'adresse du serveur rsync)

Il n'y a pas tant d'option que ça pour rsync

Est-il possible d'indiquer:
- l'adresse_ip et le nom du module coté serveur ou le nom du rep source si on n'utilise pas de module
- l'endroit ou la sauvegarde doit avoir lieu (cela peut être un rep provisoire)
si c'est indiscret, remplacer les valeurs par un truc du genre ip_dest ou mon_rep_de_destination

Si ça vous intéresse, on continue et on met en place la solution en ligne de commande avec la création d'un fichier de log

Re: Error Rsync

Posted: 15 Aug 2014 13:02
by ernie
Merci de vos aides.

Je fais du rsync local : disque raid du nas vers disque firewire du nas. Donc j'ai pas de server et de client.

J'ai lancer depuis une machine linux : rsync -ar -verbiose /mnt/StockageNAS4free /mnt/DDfirewire
Cela a fonctionné et à la fin aucune error dans la synthèse.

Faut il mieux lancer rsync par cron ?

Re: Error Rsync

Posted: 15 Aug 2014 13:30
by mtiburs
moi j'utiliserais:

rsync -avrh --stats --progress /mnt/StockageNAS4free /mnt/DDfirewire

et pour avoir une copie identique:
rsync -avrh --stats --progress --del --force /mnt/StockageNAS4free /mnt/DDfirewire
et pour avoir les attributs, le temps, etc ...
rsync -avrhstx --stats --progress /mnt/StockageNAS4free /mnt/DDfirewire

Je copierais la ligne du rsync dans un fichier:
echo "rsync -avrhstx --stats --progress /mnt/StockageNAS4free /mnt/DDfirewire">./monrsync.sh
chmod 777 ./monrsync.sh

et je lancerait cela depuis le cron du webgui

mais j'ajouterais ceci au script:
echo "Lancement du script">>./monrsync.log
rsync -avrhstx --stats --progress /mnt/StockageNAS4free /mnt/DDfirewire>>./monrsync.log

On peut aussi faire un rsync plus souvent mais plus rapidement:
rsync -avrhstx --stats --progress --size-only /mnt/StockageNAS4free /mnt/DDfirewire
le rsync par les taille de fichier peut être entre le rsync normal

On peut aussi faire d'autre amélioration, comme inscrire la date dans le log, ne mettre le log que si le rsync ne s'est pas bien passé et mettre ok dans le log si le rsync s'est bien déroulé.
C'est ce que je suis en train de faire, on peut développer cette partie.

Il y a aussi une option géniale qui est le backup sous rsync (on peut faire un backup de chaque fichier modifié ou supprimé) et le ranger proprement par la date et l'heure

Re: Error Rsync

Posted: 15 Aug 2014 22:08
by ernie
Je suis très intéressé par l'option de tracer si cela se passe bien dans un log ainsi que si cela se passe mal. Idéalement, lister les fichiers et répertoires qui ont posé problème.

Par rapport au fichier à créer, faut il ecrire tel quel tes lignes, notamment le echo ? Est ce que echo est une commande pour dire 'ne pas prendre en compte' ainsi on met des commentaires ?

Avoir les attributs ? qu'est ce ?
Avoir le temps ?
est ce qu'il renomme les fichiers pour avoir ces 2 points ?

In fine j'aimerai, une copie à l'identique (avec ou sans attribut, temps,... en focntion de ta réponse). Mais ensuite 2 stratégies:
- x copies identiques qui s'incrémentent et je décide un seuil de x au dela du quel il efface la plus ancienne pour faire les nouvelles
- une seule copie et à chaque fois il ne sauve que ce qui a changé
le tout tracer dans un log (ce qui marche, ce qui marche pas et quoi (fichier, répetoire)

malheureusement je suis novice de chez novice (mais j'apprends vite)

merci par avance

Re: Error Rsync

Posted: 15 Aug 2014 23:30
by mtiburs
la commande du style:
rsync 192.168.0.1:: demande à la machine client de lister les modules du serveur spécifié (c'est pour cela qu'il faut les laisser visibles quand on crée le module)
à partir du moment, ou la machine répond et que le module est présent, c'est bon, cela veut dire qu'on peut l'utiliser
si, il n’apparaît pas, inutile de cherche midi à 14 h, le problème se trouve sur le serveur.

vous avez dis que vous connaissiez fedora, en avez-vous une sous la main ?
L'idéal et de faire un man rsync et de tester soi-même les différentes options. Par exemple, vous créez un module rsync en ro (lecture seule) sur votre nas et ensuite vous vous amusez à le remettre dans dans votre fedora, ensuite sur l'autre nas.
pour éviter les bêtises, on peut ajouter dans les options -n ou --dry-run pour faire le rsync sans actions

On peut faire un log pour pas cher en utilisant la commande date et en dirigeant la sortie de rsync vers un fichier de log
faite les essais suivant, en root:

Code: Select all

date
moi ça donne Sat Aug 16 00:39:48 CEST 2014

mais,

Code: Select all

date +%Y-%m-%d_%Hh%Mmn
donnera 2014-08-16_00h39mn

donc en faisant:

Code: Select all

set temps=`date +%Y-%m-%d_%Hh%Mmn`
puis,

Code: Select all

echo $temps
on affiche quelque chose qui peut servir de nom de fichier de log de notre rsync

et en peaufinant:

Code: Select all

set temps=rsync_nas1-vers-nas2_`date +%Y-%m-%d_%Hh%Mmn`.log
donnera rsync_nas1-vers-nas2_2014-08-16_00h44mn.log

donc on peut faire (vous adapterez les noms):

Code: Select all

set monlog=rsync_nas1-vers-nas2_`date +%Y-%m-%d_%Hh%Mmn`.log
puis,

Code: Select all

rsync -avrh --stats --progress /mnt/StockageNAS4free /mnt/DDfirewire>./$monlog
et là, si on fait un ls, on trouvera un fichier .log qui contient toute la sortie du rsync, le nom de fichier sert de repère temporel


essayez ceci et dites-moi ce que vous en pensez, on améliorera par la suite, on développera les option également

Re: Error Rsync

Posted: 15 Aug 2014 23:32
by mtiburs
oui, je sais mon nas, n'est pas à l'heure :lol:

Re: Error Rsync

Posted: 19 Sep 2014 22:33
by ernie
Bonsoir,

J'ai mis en place le script suivant:

#!/bin/sh
set monlog1=save_`date +%Y-%m-%d_%Hh%Mmn`.log
set monlog2=script_`date +%Y-%m-%d_%Hh%Mmn`.log
echo "Lancement du script">>/mnt/pool1/script/$monlog1.log
rsync -avrhstx --stats --progress –-exclude /finch /mnt/pool1/finch/mnt/pool1 /mnt/DDfirewire>>/mnt/pool1/script/$monlog1.log
echo "Lancement du script">>/mnt/pool1/script/$monlog2.log
rsync -avrhstx --stats --progress /mnt/pool1/script /mnt/DDfirewire>>/mnt/pool1/script/$monlog2.log
rm -rf /mnt/DDfirewire/pool1/finch

Cela ne fonctionne pas : le fichier créé s'appelle '.log'.
Il semble que le $monlog1 et $monlog2 ne marche pas.

J'ai essayé la manipulation dans putty:
set temps=`date +%Y-%m-%d_%Hh%Mmn`
puis echo $temps

et rien ne s'affiche.

pourtant : date +%Y-%m-%d_%Hh%Mmn fonctionne

Merci de vos aides

Re: Error Rsync

Posted: 20 Sep 2014 01:55
by mtiburs
Bonjour,

Je ne vois pas de soucis.

Je me connecte:
Welcome to NAS4Free!
nas6: ~ # set temps=`date +%Y-%m-%d_%Hh%Mmn`
nas6: ~ # echo $temps
2014-09-19_23h29mn
nas6: ~ # date +%Y-%m-%d_%Hh%Mmn
2014-09-19_23h30mn

Si je reprend vos commande à l'identique:
nas6: ~ # set monlog1=save_`date +%Y-%m-%d_%Hh%Mmn`.log
nas6: ~ # set monlog2=script_`date +%Y-%m-%d_%Hh%Mmn`.log
nas6: ~ # echo $monlog1
save_2014-09-19_23h32mn.log
nas6: ~ # echo $monlog2
script_2014-09-19_23h32mn.log


En revanche, j'exécute mon script depuis root (en sh), si c'est depuis un utilisateur, c'est du csh et les commandes sont légèrement différentes.
Là, je ne connais pas trop les choses, je sais simplement que le bash et sh sont proche :?

J'ai vu çà (survolé car nul en anglais):
Bash is an sh-compatible command language interpreter that executes commands read from the standard input or from a file. csh / tcsh (C shell with file name completion and command line editing) is the default shell under FreeBSD. However, you can easily install and use bash as shell.

ici:
http://www.cyberciti.biz/faq/freebsd-bash-installation/

Il serait donc possible de mettre bash sous N4F :?:

Re: Error Rsync

Posted: 20 Sep 2014 07:39
by ernie
Merci
J ai fais cela du terminal de mon post sous fedora.

Je vais essayer avec putty sur le poste Windows 7 pour voir.

Quelle version de nas4free as tu ? 972 ?
Dans mon cas je suis en 972 embedded. Peut être que cela peut jouer.

Re: Error Rsync

Posted: 20 Sep 2014 14:16
by mtiburs
Bonjour,

Je suis en 972 embeded
Je m'étais connecté en root depuis une Debian (donc, assez similaire de toi)

Essaie de faire les commande "pas à pas", comme j'ai fais, pour voir quand ça déconne.

Re: Error Rsync

Posted: 20 Sep 2014 21:42
by ernie
Hello

Tu a dit
En revanche, j'exécute mon script depuis root (en sh), si c'est depuis un utilisateur, c'est du csh et les commandes sont légèrement différentes.

Root , pour root de nas4free ou de ton debian ?

Re: Error Rsync

Posted: 20 Sep 2014 22:35
by mtiburs
Hello,

en root sur le N4F.
Etre root ou en util n'a aucune incidence sur la connexion avec N4F (sauf du point de vue de la sécurité, mais ça c'est une autre histoire)

En gros, tu te connecte en util normal sur ta Fedora et tu te connectes en root sur N4F, et là, tu essaies tes commandes.

Re: Error Rsync

Posted: 21 Sep 2014 17:24
by ernie
Bon bah je comprends pas, j'ai une ligne vide comme retour.

[root@localhost x300]# set temps=`date +%Y-%m-%d_%Hh%Mmn`
[root@localhost x300]# echo $temps

[root@localhost x300]#

Pourtant la commande fonctionne :
[root@localhost x300]# date +%Y-%m-%d_%Hh%Mmn
2014-09-21_17h25mn

Re: Error Rsync

Posted: 21 Sep 2014 17:44
by ernie
Au lieu d'utiliser le terminal de fedora, j'ai installé putty sur fedora et même symptome.

Je vais tester le poste windows, au cas où cela vienne de fedora.

Re: Error Rsync

Posted: 21 Sep 2014 23:50
by mtiburs
Bon, on va approfondir, je ne suis pas un spécialiste des shell mais on va essayer d'avancer

Que donne:
set a="test"
puis
echo $a

et:
set a=`ls`
echo $a
Normalement on a le contenu d'un ls

Est-ce bon ?

Re: Error Rsync

Posted: 22 Sep 2014 06:04
by ernie
La même chose:

Welcome to NAS4Free!
nas4free ~/ root~$ set a="test"
nas4free ~/ root~$ echo $a

nas4free ~/ root~$ set a='ls'
nas4free ~/ root~$ echo $a

nas4free ~/ root~$

Ce soir j'ai accès à mon ordi windows et je teste.

Re: Error Rsync

Posted: 22 Sep 2014 13:55
by mtiburs
Il y a un truc qui ne colle pas de ton coté.

Je viens de lancer le liveCD de N4F en 972, j'ai juste activé le SSH et mis comme quoi on peut se connecter en root

et j'ai tapé:
n4ftest: ~ # set a="test"
n4ftest: ~ # echo $a
test

Tu peux essayer la même chose ?

Re: Error Rsync

Posted: 05 Oct 2014 08:46
by ernie
Bonjour

Sur une installation toute fraiche de nas4free, cela fonctionne.
Je testerai régulièrement après l'installation de finch et de mes jails.

Re: Error Rsync

Posted: 05 Oct 2014 13:00
by mtiburs
Bonjour,

Oui, ça pourrait être intéressant de savoir quand "çà dérape" !

Re: Error Rsync

Posted: 05 Oct 2014 17:25
by ernie
Avant l'installation de finch, cela fonctionne et dans putty le prompt est en vert flashy.

Après l'installation de finch, le prompt est en gras noir et cela ne marche plus !!!

J'ai essayé un stoppant finch et rine n'y fait.

Bon bah je sèche.

Re: Error Rsync

Posted: 05 Oct 2014 21:10
by mtiburs
c'est vrai que des fois c'est énervant ce genre de chose :evil:

faudrait regarder les variables environnement avant et après :?

Re: Error Rsync

Posted: 05 Oct 2014 21:15
by ernie
Merci à Dremcat4 qui a su m'expliquer le problème.

Voici l'explication résumé (avec ma vulgarisation en français des choses, milles excuses aux experts). La réponse de Dreamcat4 suit ce post.

Les commandes en ssh passent par plusieurs types de shell : TCSH, bash, sh
Il semble que nas4free est basé sur TCSH.

Finch est basé sur BASH ou SH qui est en adéquation avec POSIX.2, ce qui n'est pas le cas de TCSH.

Résultat:
TCSH
janitors-man-mini ~/ id~$ set var=value
janitors-man-mini ~/ id~$ echo $var
value

BASH or SH
janitors-man-mini ~/ id~$ var=value
janitors-man-mini ~/ id~$ echo $var
value

Si je fais selon BASH, cela marche.

La réponse de Dreamcat4:

Well the 'date' command is part of the freebsd base system. That
command is provided by nas4free, and is also provided by finch So I
believe the 'date' command should be working OK in both situations.

In TCSH shell, you may use "set var=value"
But in finch, we give you a proper POSIX.2 compliant BASH shell.

Each shell sets variables slightly differently. For example:

TCSH
janitors-man-mini ~/ id~$ set var=value
janitors-man-mini ~/ id~$ echo $var
value

BASH or SH
janitors-man-mini ~/ id~$ var=value
janitors-man-mini ~/ id~$ echo $var
value

Unfortunately TCSH is not POSIX.2 compatible as some of it's syntax is
not supported by the POSIX specification. And in other places TCSH
does not recognise the POSIX.2 syntax.

So it is recommended to use a POSIX.2 compliant shell. Because that is
the internationally recognised standard. On FreeBSD those shells are:

/bin/sh
/usr/local/bin/bash