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

  • Restringir usuario de Windows 2003 a un solo progtwig
  • ¿Cómo puedo conceder acceso al calendar de todos en Exchange 2007?
  • permissions de .htaccess y linux
  • ¿Cómo prevenir ssh git push para establecer la propiedad del file?
  • Fuerza la inheritance de permissions NTFS para los files recién creados
  • Cómo auto-ejecutar el file por lotes como usuario específico (tarea no progtwigda, no un duplicado)
  • ¿Es posible impedir que los usuarios eliminen trabajos de la queue de printing?
  • ¿Qué es una alternativa segura a los comodines en / etc / sudoers?
  • El linux y los temas del servidor de Windows, como ubuntu, centos, apache, nginx, debian y consejos de red.