Acelere la copy de security de sólo ACL en filesystems grandes

Estoy tratando de realizar copys de security rápidas de las ACL en filesystems GNU / Linux grandes. Los permissions extendidos no son realmente necesarios.

Corro 4 pequeños puntos de reference en una pequeña partición sólo para hacer una estimación del time transcurrido (segundos) y producido los tamaños de file (megabytes).

  • getfacl -R -p /backup/dir > out_file : 58.715s (36MB)
  • find /backup/dir -printf "%m %u:%g %p \n" > out_file : 54.053s (27MB)
  • find /backup/dir -printf "%m %p \n" > out_file : 0.763s (26MB)
  • ls -laR /backup/dir > out_file : 4.865s (20MB)

Así que ls es la mejor solución si se necesita el usuario: group.

Lo ideal sería que el fichero out_file se parezca a:

 755 user:group /full/path/to/dir 744 user:group /full/path/to/file ... 

Pero por lo que sé get la ruta completa al file desde ls requiere commands adicionales que ralentizarán el process. Estamos hablando de filesystems muy grandes.

¿No hay una herramienta mejor (más rápida / más eficiente) que ls para manejar esto?

¿Por qué find lento tan dramáticamente al recuperar el usuario: información de grupo en comparación con ls ?

Como ventaja, ls también puede manejar escaping caracteres especiales en nombres de file (con la opción -b ).

Resuelto: (gracias a @shodanshok) Primera vez después de la sync :

  • getfacl -n -R -p /backup/dir > out_file : 19.561s (36MB)

Pero la segunda vez que ejecuta el mismo command:

  • getfacl -n -R -p /backup/dir > out_file : 2.496s (36MB)

One Solution collect form web for “Acelere la copy de security de sólo ACL en filesystems grandes”

En mi experiencia, getfacl puede estar vinculado a la CPU por el process de resolución de nombres de usuario. Intente agregar el getfacl -n -R -p /backup/dir > out_file , por ejemplo emitir getfacl -n -R -p /backup/dir > out_file

Durante los benchmarks, preste especial atención a la caching inode / dentry, ya que puede fácilmente sesgar su testing cronometrada. Antes de cada punto de reference, emita el siguiente command para vaciar ambas cachings: sync; echo 3 > /proc/sys/vm/drop_caches sync; echo 3 > /proc/sys/vm/drop_caches

  • bind: cliente X ... transferencia de zona 'example.com/AXFR/IN' denegada, pero allow-transfer {X; }; está establecido
  • Configuración de permissions de file en la carga de VSFTP
  • Permiso denegado en el file propiedad
  • Cambiar otros usuarios Crontab
  • Cómo dar permiso de usuario y grupo de root mientras FTP carga para un usuario normal
  • Cómo vaciar caching de networking Samba en el server Linux?
  • ¿Cómo puedo elevar automáticamente los privilegios para instalar aplicaciones que requieren privilegios de administrador?
  • Active Directory: Acceso al recurso compartido de networking como usuario de WinXP SYSTEM
  • Auditoría de permissions en el sistema de files de Windows
  • crontab list o editar resultados en fopen: permission denied
  • Delegar permiso para modificar los alias de smtp en una dirección de correo electrónico específica en Microsoft Exchange 2013
  • El linux y los temas del servidor de Windows, como ubuntu, centos, apache, nginx, debian y consejos de red.