Afficher uniquement les fichiers modifiés lors de la synchronisation d'ext4 vers NTFS

9

Je voudrais que rsync imprime les fichiers modifiés et supprimés. L'option verbeuse (-v) imprime les fichiers modifiés mais aussi la liste des sous-répertoires, peut-être parce que les répertoires touchés sont considérés comme modifiés. Étant donné que je synchronise un grand nombre de fichiers à partir d'un grand nombre de sous-répertoires, il est impossible de voir les changements réels.

Alors, existe-t-il un moyen de ne pas imprimer les répertoires en utilisant rsync?

Je ne cherche pas grep -v "*/$"de réponses car cela exclurait également les nouveaux répertoires.

Commande que j'utilise: rsync -avh --delete /media/data/src /media/data/bkp

Et chaque fois qu'il imprime la liste de tous les répertoires:

src/dir1/

src/dir1/sdir1/

src/dir1/sdir2/

src/dir2/

EDIT: Ok, après quelques tests intensifs .. Il n'imprime pas tous les répertoires lors de la synchronisation d'une partition ext4 vers une ext4 et de NTFS vers NTFS. Cela ne se produit que lors de la synchronisation d'ext4 vers NTFS .. Et les options -cou --omit-dir-timesne changent pas cela.

qox
la source

Réponses:

4

Vous pouvez essayer d'utiliser --omit-dir-timesswitch pour ignorer les heures de répertoire (consultez la page de manuel rsync).

Personnellement, je trouve que l'utilisation de -cswitch est le meilleur moyen de s'assurer que seuls les fichiers dont le contenu a été modifié apparaissent dans la sortie.

Notez que l'utilisation -cralentira rsync.

Marko Kudjerski
la source
Merci pour la réponse. J'ai du mal à croire que ce n'est pas supporté nativement, du moins sans perdre les performances (ou les options) .. Je vais juste avoir confiance qu'il synchronise tout cela.
qox
Désolé, ma modification a changé la question après votre réponse.
2012
1

Au lieu de changer le type de montage, vous pouvez également dire à rsync d'ignorer les autorisations de fichier lors de la copie vers un système de fichiers qui ne le prend pas en charge. La commande suivante fonctionne pour moi.

Depuis la page de manuel de rsync:

En résumé: pour donner aux fichiers de destination (anciens et nouveaux) les autorisations source, utilisez --perms. Pour donner aux nouveaux fichiers les autorisations de destination par défaut (tout en laissant les fichiers existants inchangés), assurez-vous que l'option --perms est désactivée et utilisez --chmod = ugo = rwX (ce qui garantit que tous les bits non masqués sont activés). Si vous souhaitez faciliter la saisie de ce dernier comportement, vous pouvez lui définir un alias popt, par exemple en mettant cette ligne dans le fichier ~ / .popt (ce qui suit définit l'option -Z et inclut --no- g pour utiliser le groupe par défaut du répertoire de destination):

rsync alias -Z --no-p --no-g --chmod=ugo=rwX
flo
la source
1

n'utilisez pas -a, il contient -p -o -g.

netawater
la source
Vous pouvez toujours utiliser -asi vous le souhaitez, puis ajouter --no-o --no-p --no-gpour omettre le propriétaire, le groupe et les autorisations.
Ian Dunn
0

On dirait que c'était un problème de permission. Je ne sais pas pourquoi .. Mais j'ai édité / etc / fstab pour les partitions NTFS et cela fonctionne maintenant comme prévu, c'est-à-dire aucune impression des répertoires qui n'ont pas été modifiés.

Ancienne entrée fstab: utilisateurs ntfs-3g, valeurs par défaut, exec, uid = 1000 0 0

Nouvelle entrée fstab: utilisateurs ntfs-3g, valeurs par défaut, exec, uid = 1000, gid = 1000, dmask = 077, fmask = 137 0 0

Je suppose (qui sait ..) dmask = 077 a fait l'affaire, c'est-à-dire 'drwx ---' au lieu de 'drwxrwx'.

qox
la source
-1

J'ai utilisé:

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

Il s'agit d'un essai à sec (option n). Supprimez cette option afin d'avoir rsyncréellement transférer des fichiers.

user291372
la source