2011-08-24 5 views
24

I backup dei miei file usando rsync. Subito dopo una sincronizzazione, l'ho eseguito in attesa di non vedere nulla, ma invece sembrava che stesse saltando le directory. Ho (ovviamente) cambiato nome, ma credo di aver ancora catturato tutte le informazioni che potevo. Cosa sta succedendo qui?rsync stampa "saltando il file non regolare" per quella che sembra essere una directory normale

$ 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 

Poi ho Sync (in attesa nessuna modifica):

$ 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" 

Ed ecco la parte strana:

$ 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" 

quindi ha funzionato:

$ 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 

ma ancora:

$ 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" 

Altre note:

mie directory effettivi "foo" e "bar" non hanno spazi, ma non gli altri personaggi strani. Altre directory hanno spazi e non hanno problemi. Sono stato "stat" e non ho visto differenze tra le directory che non sono rsync e quelle che lo fanno.

Se hai bisogno di maggiori informazioni, basta chiedere.

risposta

4

Sei assolutamente sicuro che non si tratti di una directory di collegamenti simbolici?

provare un:

file /source/backup/myfiles/foo 

per assicurarsi che sia una directory

Inoltre, potrebbe benissimo essere un supporto di loopback provare

mount 

e assicurarsi che/source/backup/myfiles/foo non è elencato.

+0

'$ file/source/backup/myfiles/foo' '/source/backup/myfiles/foo /: directory' e 'mount' mostra i filesystem che/source e/destination sono accesi, ma non 'inferiore' a quello. – Richard

31

Sei assolutamente sicuro che i singoli file non siano link simbolici?

Rsync ha alcuni indicatori utili come -l che "copierà i collegamenti simbolici come collegamenti simbolici". L'aggiunta di -l al comando:

rsync -rtvpl /source/backup /destination 

credo link simbolici vengono ignorati per default, perché possono essere un rischio per la sicurezza.Controllare la pagina man o --help per maggiori informazioni su questo:

rsync --help | grep link 

Per verificare questi sono i link simbolici o pro-attivamente per trovare i link simbolici è possibile utilizzare il file o trovare:

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

Ancora un altro esempio di messaggio di stato/errore scritto male. Se il tuo codice sta saltando il file perché è un link simbolico, allora perché non stampare "skipping symlink"? – bsd

+0

La mia ipotesi è che rsync sia più vecchio dei collegamenti simbolici. Forse non si sono presi la briga di aggiungerlo dato che è un caso d'uso così raro. Niente ti impedisce di contribuire: https://rsync.samba.org/bugzilla.html – zaTricky

0

è possibile provare la seguente, funzionerà

rsync -rtvp /source/backup /destination 
+0

I file vengono comunque saltati – chestozo

1

Si dovrebbe provare il comando di seguito, molto probabilmente lavorerà per voi:

rsync -ravz /source/backup /destination