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

47

J'essaie d'utiliser rync localement (sur une machine Windows) sur un serveur distant (ma boîte osx) afin de tester un script de génération de déploiement à distance. J'ai déjà utilisé rsync entre deux serveurs Linux, mais j'ai des problèmes maintenant. Voici la sortie:

$ rsync -v -e ssh [email protected]:/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

$ 

ou

$ rsync -avz -e ssh [email protected]:/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 comporte 4 sous-répertoires, puis un groupe de fichiers dans chacun de ces répertoires.

Chrisan
la source

Réponses:

64
rsync -v -e ssh [email protected]:/Library/WebServer/sites/staging/app1/ ./export

Vous ne lui avez donné aucune option pour le mettre en mode récursif comme -rou -a.

Le répertoire app1 distant est vide alors que le répertoire d’exportation local comporte 4 sous-répertoires, puis un groupe de fichiers dans chacun de ces répertoires.

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/  [email protected]:/Library/WebServer/sites/staging/app1/ 

Aussi:

  • Vous devriez presque toujours inclure une barre oblique 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 avec le transport à distance. Vous n'avez probablement pas à spécifier le -e ssh.
Zoredache
la source
2
Wow .. c'est assez embarrassant. Oui, j'ai mélangé les sources et les dest ...
chrisan
1
+1 pour "Vous devriez presque toujours inclure une barre oblique de fin sur les répertoires avec rsync."
Walrus le chat
Sur Mac, il semble utiliser le drapeau -r, mais sur Linux, j'utilise toujours -R ("capital R")
Adam F
@Zoredache Pourquoi est-ce presque?
Nikhil
3

Essayez d'activer la capacité intégrée de rsync à générer 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 -voption supplémentaire , par exemple -avvz, en fonction de la page de manuel: "Deux options -v vous donneront des informations sur les fichiers ignorés et légèrement plus à la fin."

Si les informations renvoyées ne permettent pas d'identifier le problème, modifiez votre question et ajoutez le résultat supplémentaire.

Bryan
la source