Prueba la integridad del archivo tar en bash

Pregunta:

Tengo un script bash que crea un archivo '.tar'. Una vez creado el archivo, me gustaría probar su integridad y enviar un correo electrónico al usuario root si la integridad es mala.

Sé que necesitaría usar el comando tar -tf /root/archive.tar para verificar la integridad del archivo, pero ¿cómo podría implementar esto en una declaración bash if y buscar errores?

Respuesta:

Si tar encuentra errores en su entrada, saldrá exit(3) ¹ con un valor de salida distinto de cero. Esto, con la mayoría de las implementaciones de tar , también se hace cuando se enumeran los contenidos del archivo con t . Entonces, simplemente puede verificar el valor de salida de tar para determinar si algo salió mal:

if ! tar tf /root/archive.tar &> /dev/null; then
    write_an_email_to_root
fi

Si su tar no encuentra todos los errores con t , aún puede extraer el archivo a stdout y redirigir stdout a /dev/null , que sería el enfoque más lento pero más confiable:

if ! tar xOf /root/archive.tar &> /dev/null; then
    write_an_email_to_root
fi

¹ Esta notación denota la página de manual, no la llamada real. Ver man 3 exit .

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım