¿Por qué rsync se salta el directorio principal?

47

Estoy tratando de usar rync localmente (en una máquina con Windows) en un servidor remoto (mi caja osx) para probar un script de compilación de implementación remota. He hecho rsync antes bien entre 2 servidores Linux, pero ahora tengo problemas. Aquí está la salida:

$ 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

$ 

o

$ 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


$ 

El directorio remoto app1 está vacío, mientras que el directorio de exportación local tiene 4 subdirectorios y luego un montón de archivos en cada uno de esos

Chrisan
fuente

Respuestas:

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

No le diste ninguna opción para ponerlo en modo recursivo como -ro -a.

El directorio remoto app1 está vacío, mientras que el directorio de exportación local tiene 4 subdirectorios y luego un montón de archivos en cada uno de esos

¿Tienes las opciones al revés aquí? El comando debería ser rsync [source] [DESTINATION]. Si el directorio app1 está vacío y está intentando copiar un directorio vacío, no hará nada útil.

¿Quizás necesitas algo como esto en su lugar?

rsync -avz ./export/  [email protected]:/Library/WebServer/sites/staging/app1/ 

También:

  • Casi siempre debe incluir una barra diagonal final en los directorios con rsync.
  • Casi todas las versiones de rsync lanzadas en los últimos 5-10 años tienen el transporte remoto de manera predeterminada. Probablemente no tenga que especificar el -e ssh.
Zoredache
fuente
2
Wow ... eso es bastante vergonzoso. Sí, mezclé fuente y
destino
1
+1 para "Casi siempre debe incluir una barra diagonal final en los directorios con rsync".
Walrus the Cat
En Mac parece usar la bandera -r, pero en Linux siempre uso -R ("R mayúscula")
Adam F
@Zoredache ¿Por qué es casi?
Nikhil
3

Intentando habilitar la capacidad integrada de rsync para generar un archivo de registro, agregando la siguiente opción a su comando.

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

También puede aumentar la verbosidad agregando una -vopción adicional , por ejemplo -avvz, de acuerdo con la página del manual, 'Dos opciones -v le darán información sobre qué archivos se están omitiendo y un poco más de información al final'.

Si esta información que devuelve no ayuda a identificar el problema, edite su pregunta y agregue la salida adicional.

Bryan
fuente