Sé que se han hecho preguntas similares sobre los permisos, pero ¿qué forma de compresión o archivado conserva los permisos y los propietarios de cada archivo y directorio?
Estaba considerando el tar.gz
formato, pero ¿sería esto correcto?
Necesito mover 37 GB de archivos y directorios a otro servidor y necesito que todo sea exactamente igual cuando no esté comprimido.
Respuesta aceptada:
Tanto las herramientas de archivado tradicionales tar como cpio conservan la propiedad y los permisos de Unix (usuario/grupo/otro), así como las marcas de tiempo (con cpio, asegúrese de pasar -m
al extraer). Si no le gusta su sintaxis arcana¹, puede usar su pax de reemplazo POSIX (pax -w -pe
) Todos estos generan un archivo sin comprimir; canaliza el archivo a una herramienta como gzip
o xz
para comprimirlo (GNU tar tiene opciones para hacer la compresión). Los usuarios y grupos se identifican por su nombre; GNU tar tiene una opción .
Ninguna de estas herramientas conserva características modernas como ACL, capacidades, contextos de seguridad u otros atributos extendidos.
Algunas versiones de tar pueden almacenar ACL. Consulte ¿Qué usar para hacer una copia de seguridad de los archivos y conservar las ACL? Con GNU tar, pase --acls
tanto al crear como al extraer el archivo.
Un sistema de archivos squashfs, como lo sugiere mikeserv, almacena capacidades y atributos extendidos, incluido el contexto SELinux, pero no ACL. (Necesita versiones que no sean demasiado antiguas). Si tiene ACL y contextos de seguridad, puede usar un sistema de archivos squashfs y guardar la ACL ejecutando getfacl -R
en la raíz del sistema de archivos original y restaurarlos después de extraer los archivos con setfacl --restore
.
Si desea guardar absolutamente todo, incluyendo ACL, marcas de tiempo de subsegundos, atributos extendidos y atributos específicos del sistema de archivos, puede clonar el sistema de archivos. La desventaja de este enfoque es que no puede escribir directamente una copia comprimida convenientemente. La forma definitiva de clonar el sistema de archivos es copiar el dispositivo de bloque; por supuesto, esto es un desperdicio en el sentido de que copia el espacio vacío. Alternativamente, cree un sistema de archivos que sea lo suficientemente grande para almacenar todos los archivos y use cp -a
con el cp
comando de GNU coreutils para copiar los archivos; GNU cp es bastante bueno para copiar todo, incluidas las características no tradicionales, como los atributos extendidos y las ACL.
¹ Aunque este es realmente exagerado.