# rm-rf.es | Administración de sistemas

Bitácora personal de un SysAdmin Gnu/Linux, Windows, BSD...

Comprobar la integridad de ficheros tar, gz, rar, zip


De nada sirve tener un sistema de backups o comprimir y empaquetar ficheros con información sensible si no tenemos la seguridad de que el archivo de respaldo es 100% fiable. Hoy vamos a ver como verificar la integridad de ficheros comprimidos y empaquetados desde GNU/Linux.

Ficheros .gz

gunzip -t fichero.gz
gunzip --test fichero.gz
gzip -t  fichero.gz
gzip --test fichero.gz

Ficheros .tar

tar tf fichero.tar

Podemos realizar la verificación en el momento que creamos el fichero con el parámetro W:

tar cvfW fichero.tar directorio/

Ficheros .tar.gz

gunzip -c fichero.tar.gz | tar tf -

Ficheros .tar.bz2

bzip2 -tvv fichero.tar.bz2

Ficheros .zip

unzip -t fichero.zip

Ficheros .rar

unrar t fichero.rar

Backups incrementales con TAR


No conocía la opción de hacer backups incrementales comprimidos con TAR, se puede realizar del siguiente modo:

tar -Pvuf backup.tar /carpeta/a/comprimir

De este modo se comprimirá dicha carpeta, y la próxima vez que se vuelva a repetir dicho comando, solo cambiarán los ficheros modificados y se añadirán los nuevos sin necesidad de hacer toda la compresión de nuevo. Todo esto se debe a añadir el parámetro “u” a la línea de comandos.

Nota: Los ficheros borrados no se eliminan del fichero comprimido.

Vía | Shell fu

Comprimir directorio remoto a través de SSH


ssh usuario@servidor "cd /directorio && tar cvz * --exclude=*log" > backup.$( date +%y%m%d ).tgz

Esta es una forma rápida y sencilla de hacer backups remotos vía SSH de una determinada carpeta, la explicación es sencilla, primero hacemos ssh al servidor remoto, al cual le pasamos la primera parte del comando:

cd /directorio && tar cvz * --exclude=*log

Entramos a la carpeta a comprimir y le decimos que comprima todo excepto los ficheros “que acaben en log”, esto lógicamente puede ser modificado al gusto de cada uno, después, simplemente redirigimos los datos comprimidos al fichero backup + fecha actual .tgz:

 > backup.$( date +%y%m%d ).tgz

Este y muchos otros tips de consola los puedes encontrar en shell-fu ;)