Ověření zkopírovaných souborů pomocí md5 sum.
Vytvoření md5 souboru pro použití s Total Commander:
find . -type d | while read -r d; do (cd "$d" && find . -maxdepth 1 -type f -iregex ".*\.\(mov\|wav\|mp4\)" | while read -r f; do filename=$(basename "$f"); echo "Zpracovavam: $d/$filename"; pv "$filename" | md5sum | sed "s|-|*$filename|" >> "checksum.md5"; done); done
celkovy_pocet=0; find . -type d | while read -r d; do (cd "$d" && find . -maxdepth 1 -type f -iregex ".*\.\(mov\|wav\|mp4\)" | { slozka_pocet=0; while read -r f; do filename=$(basename "$f"); echo "Zpracovavam: $d/$filename"; pv "$filename" | md5sum | sed "s|-|*$filename|" >> "checksum.md5"; ((slozka_pocet++)); done; echo "$slozka_pocet"; }); done | { while read -r n; do ((celkovy_pocet+=n)); done; echo -e "\n--------------------------------------------------"; echo -e "\x1b[32mCelkem vygenerovano $celkovy_pocet kontrolnich souctu MD5.\x1b[0m"; echo -e "--------------------------------------------------\n"; }
Hromadné ověření v TC:
- Alt + F7 (otevře se okno hledání), hledat soubory checksum.md5 - Enter.
- Zobrazit v panelu
- označit všechny (Ctrl + A) a stisknout Enter (nebo zvolte v horním menu Soubory -> Ověřit CRC soubory)
Ověření v Linuxu (s pv):
apt install pv
find . -name "checksum.md5" -exec bash -c 'cd "$(dirname "$1")" && sed -E "s/([0-9a-f]{32})[[:space:]]*\*?[[:space:]]*/\1 /g" "checksum.md5" | while read -r hash file; do echo "Ověřuji: $(pwd)/$file"; pv "$file" | md5sum -c <(echo "$hash -") 2>&1 | sed -e "s/OK/\x1b[32mOK\x1b[0m/g" -e "s/FAILED/\x1b[31mFAILED\x1b[0m/g"; done' _ {} \;
find . -name "checksum.md5" -exec bash -c 'cd "$(dirname "$1")" && sed -E "s/([0-9a-f]{32})[[:space:]]*\*?[[:space:]]*/\1 /g" "checksum.md5" | { celkem=0; ok=0; failed=0; while read -r hash file; do ((celkem++)); echo "Ověřuji: $(pwd)/$file"; if pv "$file" | md5sum -c <(echo "$hash -") >/dev/null 2>&1; then ((ok++)); echo -e "\x1b[32mOK\x1b[0m"; else ((failed++)); echo -e "\x1b[31mFAILED\x1b[0m"; fi; done; echo -e "\n--------------------------------------------------"; if [ "$failed" -eq 0 ]; then echo -e "\x1b[32mKontrolováno: $celkem, v pořádku: $ok, poškozeno: $failed\x1b[0m"; else echo -e "\x1b[31m\x1b[5mVýsledek: Kontrolováno: $celkem, v pořádku: $ok, poškozeno: $failed\x1b[0m"; fi; echo -e "--------------------------------------------------\n"; }' _ {} \;
Ověření v Synology (bez pv):
find . -name "checksum.md5" -exec bash -c 'cd "$(dirname "$1")" && sed -E "s/([0-9a-f]{32})[[:space:]]*\*?[[:space:]]*/\1 /g" "checksum.md5" | while read -r hash file; do echo -n "Ověřuji $file: "; md5sum -c <(echo "$hash -") 2>&1 < "$file" | sed -e "s/-: OK/\x1b[32mOK\x1b[0m/g" -e "s/FAILED/\x1b[31mFAILED\x1b[0m/g"; done' _ {} \;
