85 votes

Pourquoi rsync ignore-t-il le répertoire principal ?

J'essaie d'utiliser rync localement (sur une machine Windows) vers un serveur distant (ma boîte osx) afin de tester un déploiement à distance build script. J'ai fait rsync avant juste bien entre 2 serveurs linux, mais j'ai des problèmes maintenant. Voici la sortie :

$ rsync -v -e ssh myuser@10.86.83.11:/Library/WebServer/sites/staging/app1/ ./export

skipping directory /Library/WebServer/sites/staging/app1/.

sent 8 bytes  received 13 bytes  3.82 bytes/sec
total size is 0  speedup is 0.00

$ 

o

$ rsync -avz -e ssh myuser@10.86.83.11:/Library/WebServer/sites/staging/app1/ ./export

receiving file list ... done
./

sent 26 bytes  received 68 bytes  17.09 bytes/sec
total size is 0  speedup is 0.00

$ 

Le répertoire app1 distant est vide alors que le répertoire d'exportation local contient 4 sous-répertoires et un certain nombre de fichiers dans chacun d'eux.

117voto

jammus Points 1796
rsync -v -e ssh myuser@10.86.83.11:/Library/WebServer/sites/staging/app1/ ./export

Vous ne lui avez pas donné d'options pour le mettre en mode récursif comme -r o -a .

Le répertoire app1 distant est vide alors que le répertoire d'exportation local contient 4 sous-dossiers. répertoires et un tas de fichiers dans chacun d'eux.

Avez-vous les options à l'envers ici ? La commande devrait être rsync [source] [DESTINATION] . Si le répertoire app1 est vide et que vous essayez de copier un répertoire vide, vous ne ferez rien d'utile.

Peut-être avez-vous besoin de quelque chose comme ça à la place ?

rsync -avz ./export/  myuser@10.86.83.11:/Library/WebServer/sites/staging/app1/ 

Aussi :

  • Vous devriez presque toujours inclure un slash de fin sur les répertoires avec rsync.
  • Presque toutes les versions de rsync publiées au cours des 5 à 10 dernières années utilisent par défaut ssh pour le transport à distance. Vous n'avez probablement pas besoin de spécifier l'option -e ssh .

4voto

D.Spetz Points 2214

Essayez d'activer la capacité intégrée de rsync à produire un fichier journal, en ajoutant l'option suivante à votre commande.

--log-file=/path/to/log.file

Vous pouvez également augmenter la verbosité en ajoutant une option supplémentaire. -v option, par exemple -avvz Selon la page de manuel, "deux options -v vous donneront des informations sur les fichiers qui sont ignorés et un peu plus d'informations à la fin".

Si les informations qui reviennent ne permettent pas d'identifier le problème, veuillez modifier votre question et ajouter les résultats supplémentaires.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X