Mostra solo i file modificati durante la sincronizzazione da ext4 a NTFS


9

Vorrei che rsync stampasse file modificati ed eliminati. L'opzione dettagliata (-v) stampa i file modificati ma anche l'elenco delle sottodirectory, forse perché le directory toccate sono considerate modificate. Dal momento che sincronizzo molti file da molte sottodirectory, è impossibile vedere le modifiche effettive.

Quindi, c'è un modo per non stampare directory usando rsync?

Non sto cercando un grep -v "*/$"tipo di risposta poiché escluderebbe anche nuove directory.

Comando che sto usando: rsync -avh --delete /media/data/src /media/data/bkp

E ogni volta che stampa l'elenco di tutte le directory:

src/dir1/

src/dir1/sdir1/

src/dir1/sdir2/

src/dir2/

EDIT: Ok, dopo alcuni test intensivi .. Non stampa tutte le directory durante la sincronizzazione da una partizione ext4 a ext4 e da NTFS a NTFS. Lo fa solo durante la sincronizzazione da ext4 a NTFS .. E le opzioni -co --omit-dir-timesnon cambiarlo.

Risposte:


4

Puoi provare a usare --omit-dir-timesswitch per ignorare i tempi della directory (dai un'occhiata alla pagina man di rsync).

Personalmente trovo che utilizzare -cswitch sia il modo migliore per garantire che solo i file il cui contenuto è stato modificato vengano visualizzati nell'output.

Si noti che l'utilizzo -crallenterà rsync.


Grazie per la risposta. Trovo difficile credere che non sia supportato in modo nativo, almeno senza perdere le prestazioni (o le opzioni) .. Dovrò solo fidarmi che sincronizza tutto.
Qox,

Spiacenti, la mia modifica ha cambiato la domanda dopo la tua risposta.
Qox,

1

Invece di cambiare il tipo di mount puoi anche dire a rsync di ignorare i permessi dei file quando copi su un filesystem che non lo supporta. Il seguente comando funziona per me.

Dalla pagina man di rsync:

In sintesi: per assegnare ai file di destinazione (sia vecchi che nuovi) i permessi di origine, usare --perms. Per assegnare ai nuovi file le autorizzazioni predefinite di destinazione (lasciando invariati i file esistenti), assicurarsi che l'opzione --perms sia disattivata e utilizzare --chmod = ugo = rwX (che garantisce che tutti i bit non mascherati vengano abilitati). Se ti piacerebbe rendere quest'ultimo comportamento più facile da digitare, potresti definire un alias popt per questo, come mettere questa riga nel file ~ / .popt (quanto segue definisce l'opzione -Z e include --no- g per utilizzare il gruppo predefinito della directory di destinazione):

rsync alias -Z --no-p --no-g --chmod=ugo=rwX

1

non usare -a, contiene -p -o -g.


Puoi comunque utilizzare -ase lo desideri, quindi aggiungere --no-o --no-p --no-gper omettere proprietario, gruppo e autorizzazioni.
Ian Dunn,

0

Sembra che fosse un problema di autorizzazione. Non so perché .. Ma ho modificato / etc / fstab per le partizioni NTFS e ora funziona come previsto, cioè nessuna stampa di directory che non sono state modificate.

Vecchia voce fstab: utenti ntfs-3g, valori predefiniti, exec, uid = 1000 0 0

Nuova voce fstab: utenti ntfs-3g, valori predefiniti, exec, uid = 1000, gid = 1000, dmask = 077, fmask = 137 0 0

Immagino (chissà ..) dmask = 077 ha fatto il trucco, cioè 'drwx ---' invece di 'drwxrwx'.


-1

Ero solito:

sudo rsync -auzhni --progress --omit-dir-times --no-o  src_dir/ dst_dir 

È una corsa a secco (opzione n). Rimuovere tale opzione per rsynctrasferire effettivamente i file.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.