Autor Tema: Script para generar MD5 (linux) con subdirectorios  (Leído 3125 veces)

Fl0ppy

  • Administrador
  • Usuario Héroe
  • *****
  • Mensajes: 10484
Script para generar MD5 (linux) con subdirectorios
« en: 10 de Febrero de 2018, 01:39:02 pm »
Es un poco tontin pero efectivo

Código: [Seleccionar]
find -type f -not -name "checklist.txt" -exec md5sum "{}" + > checklist.txt
Para comprobar los ficheros

Código: [Seleccionar]
md5sum -c checklist.txt
Siempre que pasa igual sucede lo mismo



Fl0ppy

  • Administrador
  • Usuario Héroe
  • *****
  • Mensajes: 10484
Re:Script para generar MD5 (linux) con subdirectorios
« Respuesta #1 en: 14 de Febrero de 2019, 10:00:22 am »
Añado un script que he modificado (ligeramente, solo he puesto un poco de color en el texto) que lo hace es un listado progresivo y así vemos cuantos ficheros lleva y cuantos quedan, aparte pone en un listado los que no coinciden para que se puedan revisar.

Este script ha salido de aquí:
https://unix.stackexchange.com/questions/16826/good-progress-bar-about-md5sum-checking-progress
http://pastebin.com/raw/eqfiXzaB



Código: [Seleccionar]
#!/bin/bash

# unzip file.zip
# rm file.zip
printf '' > output-bad-checksums.txt
n=$(cat checklist.txt | wc -l)
cat checklist.txt | {
  i=0 bad=0 bad_bef=0
  while IFS= read -r line; do
    i=$((i+1))
    bad_bef=`echo $bad`
    line_act=`echo $line | sed 's/^.................................//g'`
    echo "$line" | md5sum -c - || bad=$((bad+1))
if [[ $bad_bef < $bad ]];
then echo "$line" >> output-bad-checksums.txt
fi
    clear
    echo -e "$i/$n - checking: \n\n$line_act"
  done
  [ $bad -eq 0 ] || { tput setaf 1;echo "$bad bad checksums check the file output-bad-checksums.txt"; false; } && { tput setaf 2;echo "All good"; }&& rm output-bad-checksums.txt
}

Siempre que pasa igual sucede lo mismo



Fl0ppy

  • Administrador
  • Usuario Héroe
  • *****
  • Mensajes: 10484
Re:Script para generar MD5 (linux) con subdirectorios
« Respuesta #2 en: 14 de Febrero de 2019, 06:15:24 pm »
Creada versión nueva con estos cambios

-Si los datos son correctos entonces borra el fichero .chk y sale un mensaje diciendo que todo ha ido bien de color verde, si sale mal entonces sale de color rojo con otro mensaje
Siempre que pasa igual sucede lo mismo