2011-08-24 21 views
24

Copio de seguridad mis archivos usando rsync. Justo después de una sincronización, lo ejecuté esperando no ver nada, pero parecía que se estaba saltando directorios. He (obviamente) cambiado nombres, pero creo que todavía he capturado toda la información que pude. ¿Que esta pasando aqui?rsync imprime "omisión de archivos no regulares" para lo que parece ser un directorio normal

$ ls -l /source/backup/myfiles 
drwxr-xr-x 2 me me 4096 2010-10-03 14:00 foo 
drwxr-xr-x 2 me me 4096 2011-08-03 23:49 bar 
drwxr-xr-x 2 me me 4096 2011-08-18 18:58 baz 

$ ls -l /destination/backup/myfiles 
drwxr-xr-x 2 me me 4096 2010-10-03 14:00 foo 
drwxr-xr-x 2 me me 4096 2011-08-03 23:49 bar 
drwxr-xr-x 2 me me 4096 2011-08-18 18:58 baz 

$ file /source/backup/myfiles/foo 
/source/backup/myfiles/foo/: directory 

Entonces Sync (esperando sin cambios):

$ rsync -rtvp /source/backup /destination 
sending incremental file list 
backup/myfiles 
skipping non-regular file "backup/myfiles/foo" 
skipping non-regular file "backup/myfiles/bar" 

y aquí está la parte extraña:

$ echo 'hi' > /source/backup/myfiles/foo/test 
$ rsync -rtvp /source/backup /destination 
sending incremental file list 
backup/myfiles 
backup/myfiles/foo 
backup/myfiles/foo/test 
skipping non-regular file "backup/myfiles/foo" 
skipping non-regular file "backup/myfiles/bar" 

por lo que funcionó:

$ ls -l /source/backup/myfiles/foo 
-rw-r--r-- 1 me me 3126091 2010-06-15 22:22 IMGP1856.JPG 
-rw-r--r-- 1 me me 3473038 2010-06-15 22:30 P1010615.JPG 
-rw-r--r-- 1 me me  3 2011-08-24 13:53 test 

$ ls -l /destination/backup/myfiles/foo 
-rw-r--r-- 1 me me 3126091 2010-06-15 22:22 IMGP1856.JPG 
-rw-r--r-- 1 me me 3473038 2010-06-15 22:30 P1010615.JPG 
-rw-r--r-- 1 me me  3 2011-08-24 13:53 test 

pero aún así:

$ rsync -rtvp /source/backup /destination 
sending incremental file list 
backup/myfiles 
skipping non-regular file "backup/myfiles/foo" 
skipping non-regular file "backup/myfiles/bar" 

Otras notas:

Mis directorios reales "foo" y "bar" no tienen espacios, pero no otros caracteres extraños. Otros directorios tienen espacios y no tienen ningún problema. Me 'stat'-ed y no vi diferencias entre los directorios que no rsync y los que sí lo hacen.

Si necesita más información, solo pregunte.

Respuesta

4

¿Está absolutamente seguro de que no es un directorio simbólico de enlaces?

probar un:

file /source/backup/myfiles/foo 

para asegurarse de que es un directorio

Además, podría muy bien ser un montaje de bucle invertido tratar

mount 

y asegúrese de que/fuente/backup/myfiles/foo no está en la lista.

+0

archivo '$/fuente/backup/myfiles/foo' '/fuente/backup/myfiles/foo /: directory' y 'mount' muestra los sistemas de archivos que/source y/destination están encendidos, pero no 'más bajos' que eso. – Richard

31

¿Está absolutamente seguro de que los archivos individuales no son enlaces simbólicos?

Rsync tiene algunos indicadores útiles como -l que "copiarán enlaces simbólicos como enlaces simbólicos". -l añadiendo a su comando:

rsync -rtvpl /source/backup /destination 

que creen enlaces simbólicos se omiten de forma predeterminada, ya que pueden ser un riesgo de seguridad.Compruebe la página de hombre o --help para obtener más información sobre esto:

rsync --help | grep link 

Para verificar estos son enlaces simbólicos o pro-activamente para encontrar enlaces simbólicos que puede utilizar archivo o encuentran:

$ file /path/to/file 
/path/to/file: symbolic link to `/path/file` 
$ find /path -type l 
/path/to/file 
+0

Otro ejemplo más de un mensaje de estado/error mal redactado. Si su código omite el archivo porque es un enlace simbólico, ¿por qué no imprimir "saltarse el enlace simbólico"? – bsd

+0

Supongo que rsync es más antiguo que los enlaces simbólicos. Tal vez simplemente no se han molestado en agregarlo ya que es un caso de uso tan raro. Nada le impide contribuir: https://rsync.samba.org/bugzilla.html – zaTricky

0

puede intentar lo siguiente, que funcionará

rsync -rtvp /source/backup /destination 
+0

Los archivos se omiten de todos modos – chestozo

1

Usted debe tratar el comando a continuación, muy probablemente va a trabajar para usted:

rsync -ravz /source/backup /destination 
Cuestiones relacionadas