Mostrar solo los archivos modificados mientras se sincroniza de ext4 a NTFS

9

Me gustaría que rsync imprima archivos modificados y eliminados. La opción detallada (-v) imprime archivos modificados pero también la lista de subdirectorios, tal vez porque los directorios tocados se consideran modificados. Como sincronizo muchos archivos de muchos subdirectorios, es imposible ver los cambios reales.

Entonces, ¿hay alguna manera de no imprimir directorios usando rsync?

No busco grep -v "*/$"respuestas, ya que también excluiría nuevos directorios.

Comando que estoy usando: rsync -avh --delete /media/data/src /media/data/bkp

Y cada vez que imprime la lista de todos los directorios:

src/dir1/

src/dir1/sdir1/

src/dir1/sdir2/

src/dir2/

EDITAR: Ok, después de algunas pruebas intensivas. No imprime todos los directorios cuando se sincroniza desde una partición ext4 a una ext4 y desde NTFS a NTFS. Solo lo hace cuando se sincroniza de ext4 a NTFS ... Y las opciones -co --omit-dir-timesno cambian eso.

qox
fuente

Respuestas:

4

Puede intentar usar el --omit-dir-timesinterruptor para ignorar los tiempos de directorio (eche un vistazo a la página de manual de rsync).

Personalmente, considero que usar el -cinterruptor es la mejor manera de garantizar que solo los archivos cuyo contenido ha cambiado se muestren en la salida.

Tenga en cuenta que el uso -cralentizará rsync.

Marko Kudjerski
fuente
Gracias por la respuesta. Me resulta difícil creer que no sea compatible de forma nativa, al menos sin perder rendimiento (u opciones). Solo tendré que confiar en que lo sincroniza todo.
qox
Lo sentimos, mi edición cambió la pregunta después de su respuesta.
qox
1

En lugar de cambiar el tipo de montaje, también puede decirle a rsync que ignore los permisos de archivo cuando copie en un sistema de archivos que no lo admite. El siguiente comando funciona para mí.

Desde la página de manual de rsync:

En resumen: para dar a los archivos de destino (antiguos y nuevos) los permisos de origen, use --perms. Para otorgar a los archivos nuevos los permisos de destino predeterminados (sin modificar los archivos existentes), asegúrese de que la opción --perms esté desactivada y use --chmod = ugo = rwX (que garantiza que todos los bits no enmascarados se habiliten). Si desea hacer que este último comportamiento sea más fácil de escribir, puede definir un alias emergente para él, como poner esta línea en el archivo ~ / .popt (lo siguiente define la opción -Z e incluye --no- g para usar el grupo predeterminado del directorio de destino):

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

no use -a, contiene -p -o -g.

netawater
fuente
Todavía puede usar -asi lo desea, y luego agregar --no-o --no-p --no-gpara omitir el propietario, el grupo y los permisos.
Ian Dunn
0

Parece que fue un problema de permiso. No estoy seguro de por qué ... Pero he editado / etc / fstab para particiones NTFS y ahora funciona como se esperaba, es decir, no se imprimen los directorios que no se han modificado.

Entrada antigua de fstab: usuarios ntfs-3g, valores predeterminados, exec, uid = 1000 0 0

Nueva entrada fstab: usuarios ntfs-3g, valores predeterminados, exec, uid = 1000, gid = 1000, dmask = 077, fmask = 137 0 0

Supongo (quién sabe ...) dmask = 077 hizo el truco, es decir, 'drwx ---' en lugar de 'drwxrwx'.

qox
fuente
-1

Solía:

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

Es una carrera en seco (opción n). Elimine esa opción para poder rsynctransferir los archivos.

usuario291372
fuente