# Problèmes avec sauvegarde en ligne de commande via rsync



## Rosell (10 Janvier 2008)

Bonjour à tous

J'ai posté sur le Forum Mac Os X, mais je ne trouve pas de réponse à mes problèmes.
Quelques pistes ont bien été trouvé, mais le problème principal n'a trouvé aucune réponse.
Peut-être que les lecteurs de ce Forum réussiront à me répondre...

Voici le post original:

 Sauvegarde en ligne de commande via rsync
des réponses intéressantes ont aussi été trouvée sur  le Forum macbidouille.com


Je précise que je ne veux en aucun cas dénigrer les réponses qui m'ont été apportées jusque là,
mais j'attends que quelqu'un puisse m'aider sur le point n°2:


> *2°/ Plantage de la sauvegarde *
> Mes sauvegardes butent sur certains fichiers:
> Library/Widgets/Airport Radar.wdgt/AppleClasses/AppleScrollArea.js
> Et là, c'est le gel de la commande.
> ...



Pour pouvoir tout de même effectuer mes sauvegardes, j'ai modifié ma ligne de commande en ajoutant un 
	
	



```
--exclude "Library/Widgets/"
```
Et la sauvegarde à cette fois planté sur un .gif contenu dans mon dossier Images.

Je désespère de pouvoir un jour lancer cette commande de sauvegarde.​


----------



## Rosell (11 Janvier 2008)

Les tests et essais se succèdent...

Mon script fonctionne très bien, 
je l'ai testé avec comme dossier cible, un dossier situé sur un mac distant donc formaté en HFS+ et monté en afp.

Toutes vos infos concernant l'utilisation de rsync vers un volume formaté en xfs sont les bienvenus!


----------



## supermoquette (11 Janvier 2008)

Elle dit quoi la commande quand elle gèle ?

Pourquoi tu montes un volume pour faire du rsync ? il le fait directement sans monter si tu l'as de l'autre côté.

Tu as songé à l'option -z histoire d'archiver, le dernier recours contre les différents FS ? c'est pas toujours possible je sais, mai si c'est de la pure sauvegarde&#8230;


----------



## Rosell (12 Janvier 2008)

supermoquette a dit:


> Elle dit quoi la commande quand elle gèle ?


Voilà la commande:

```
rsync -avvvv --delete --exclude "Library/Caches"  --exclude "Library/Cookies/"  --exclude "Library/Logs/" --exclude "Library/Widgets/" --exclude "Deleted Messages.mbox" --exclude ".Trash/" "${source}" "${cible}" >> $rapport
```
Un rapport est créé dans un fichier .txt grâce à l'option -vvvv.
Voici le début, des lignes étranges et la fin de ce rapport:

_[receiver] add_exclude(Library/Caches, exclude)
[receiver] add_exclude(Library/Cookies/, exclude)
[receiver] add_exclude(Library/Logs/, exclude)
[receiver] add_exclude(Library/Widgets/, exclude)
[receiver] add_exclude(Deleted Messages.mbox, exclude)
[receiver] add_exclude(.Trash/, exclude)
cmd= machine= user= path=/Volumes/eric/BACKUP/backup_iBook/
cmd=. /Volumes/eric/BACKUP/backup_iBook/ 
(Client) Protocol versions: remote=28, negotiated=28
building file list ... 
[sender] make_file(.,*,2)
[sender] expand file_list to 131072 bytes, did move
[sender] make_file(.bash_history,*,2)
[sender] make_file(.CFUserTextEncoding,*,2)
[sender] make_file(.DS_Store,*,2)
....
[sender] popping per-dir .cvsignore exclude list
....
[sender] make_file(Documents/Divers/Nokia N70,*,2)
_
*Puis blocage.*
Je précise que la ligne _[sender] popping per-dir .cvsignore exclude list_ revient très souvent!!!
Quand je ferme la fenêtre du terminal pour mettre fin au processus, mon rapport affiche alors:

__exit_cleanup(code=20, file=/SourceCache/rsync/rsync-24.1/rsync/rsync.c, line=231): entered
_exit_cleanup(code=13, file=/SourceCache/rsync/rsync-24.1/rsync/log.c, line=222): entered
_exit_cleanup(code=13, file=/SourceCache/rsync/rsync-24.1/rsync/log.c, line=222): entered
_exit_cleanup(code=13, file=/SourceCache/rsync/rsync-24.1/rsync/log.c, line=222): entered
_exit_cleanup(code=13, file=/SourceCache/rsync/rsync-24.1/rsync/log.c, line=222): entered
_exit_cleanup(code=13, file=/SourceCache/rsync/rsync-24.1/rsync/log.c, line=222): entered
_exit_cleanup(code=13, file=/SourceCache/rsync/rsync-24.1/rsync/log.c, line=222): entered
_exit_cleanup(code=13, file=/SourceCache/rsync/rsync-24.1/rsync/log.c, line=222): entered
_exit_cleanup(code=13, file=/SourceCache/rsync/rsync-24.1/rsync/log.c, line=222): entered
_exit_cleanup(code=13, file=/SourceCache/rsync/rsync-24.1/rsync/log.c, line=222): entered
_exit_cleanup(code=13, file=/SourceCache/rsync/rsync-24.1/rsync/log.c, line=222): entered
_exit_cleanup(code=13, file=/SourceCache/rsync/rsync-24.1/rsync/log.c, line=222): about to call exit(13)_




supermoquette a dit:


> Pourquoi tu montes un volume pour faire du rsync ? il le fait directement sans monter si tu l'as de l'autre côté.


Mon NAS est un LaCie EDmini avec je crois un Debian embarqué (les sources sont sur le site de LaCie), mais je ne sais pas comment installer "rsync server" dessus. Je ne sais même pas si cela est possible et je n'y connais rien en unix.
De plus, je préfère être indépendant d'un serveur rsync.
Cela me permet de réutiliser un script similaire pour faire mes sauvegardes vers un disque externe via Firewire.



supermoquette a dit:


> Tu as songé à l'option -z histoire d'archiver, le dernier recours contre les différents FS ? c'est pas toujours possible je sais, mai si c'est de la pure sauvegarde


Je vais ré-essayer, mais il me semble avoir mis -z dans mes premiers scripts et je n'ai jamais vu la différence. Cette option est bien sensée me créer un fichier .zip ou .tar avec dedans ma sauvegarde, non?


----------



## supermoquette (12 Janvier 2008)

Oublie le vvvv un simple v (voire vv mais perso je n'aime guère) est nettement plus lisible.

Mmmhh je vois que tu as plusieurs --exclude, il serait bon de faire un fichier avec la liste dedans* (un simple fichier texte avec la liste des patterns, ce que je fais et très pratique, plutôt que d'updater ta commande) et de le passer dans exclude, un petit exemple podcasté ici. Perso j'éviterais les espaces dans un pattern.

le -z te fait un tgz via tar & gzip (ça bouffe du cpu&#8230 mais précise la DEST avec un nom finissant par .tgz

*Selon le man:


*--exclude=PATTERN*
              This option allows you to selectively exclude certain files from
              the list of files to be transferred. This is most useful in com-
              bination with a recursive transfer.

              You may use as many --exclude options on the command line as you
              like to build up the list of files to exclude.

              See  the  EXCLUDE  PATTERNS  section for detailed information on
              this option.


*--exclude-from=FILE*
              This option is similar to the --exclude option, but  instead  it
              adds all exclude patterns listed in the file FILE to the exclude
              list.  Blank lines in FILE and lines starting with  ';'  or  '#'
              are  ignored.   If FILE is - the list will be read from standard
              input.


----------



## Rosell (12 Janvier 2008)

supermoquette a dit:


> Oublie le vvvv un simple v (voire vv mais perso je n'aime guère) est nettement plus lisible.


Normalement, je ne mets que -v.
Le -vvvv était pour te donner le plus d'infos possible!!!



supermoquette a dit:


> Mmmhh je vois que tu as plusieurs --exclude, il serait bon de faire un fichier avec la liste dedans* (un simple fichier texte avec la liste des patterns, ce que je fais et très pratique, plutôt que d'updater ta commande) et de le passer dans exclude, un petit exemple podcasté ici. Perso j'éviterais les espaces dans un pattern.


Désolé, mais j'arrive pas à créer un fichier d'exclusion.
Mon fichier ne contient qu'une seule ligne qui commence par "- ", sans les guillemets bien sûr.
Et avec le chemin des dossiers à exclure.
Il y a une syntaxe particulière à respecter??



supermoquette a dit:


> le -z te fait un tgz via tar & gzip (ça bouffe du cpu) mais précise la DEST avec un nom finissant par .tgz


Sans succès!!!


----------



## Rosell (12 Janvier 2008)

supermoquette a dit:


> Oublie le vvvv un simple v (voire vv mais perso je n'aime guère) est nettement plus lisible.


Normalement, je ne mets que -v.
Le -vvvv était pour te donner le plus d'infos possible!!!



supermoquette a dit:


> Mmmhh je vois que tu as plusieurs --exclude, il serait bon de faire un fichier avec la liste dedans* (un simple fichier texte avec la liste des patterns, ce que je fais et très pratique, plutôt que d'updater ta commande) et de le passer dans exclude, un petit exemple podcasté ici. Perso j'éviterais les espaces dans un pattern.


Désolé, mais j'arrive pas à créer un fichier d'exclusion.
Mon fichier ne contient qu'une seule ligne qui commence par "- ", sans les guillemets bien sûr.
Et avec le chemin des dossiers à exclure.
Il y a une syntaxe particulière à respecter??

**MAJ: a y est, une sombre histoire de chemin de fichier.
Les chemins à mettre dans le fichier doivent être des chemins relatifs!!!!!!!
et pas de type $HOME/Desktop/...



supermoquette a dit:


> le -z te fait un tgz via tar & gzip (ça bouffe du cpu) mais précise la DEST avec un nom finissant par .tgz


Sans succès!!!


----------



## supermoquette (12 Janvier 2008)

mes confuses -v compresse pendant le transfert seulement, j'utilise tar dans mes scripts avant&#8230;


----------



## Rosell (12 Janvier 2008)

Pas de soucis


Et t'as pas une idée pour mes plantages de sauvegarde.
C'est quand même ça le gros soucis.


----------

