#!/bin/bash # # own3d - skrypt sprawdzający integralność plików # author: Marcin Biernacki # # MD5SUM="`which md5sum > /dev/null`" if [ "$?" = "1" ] then echo "Skrypt wymaga narzędzia md5sum."; exit 1; fi if [ "$1" = "" ] || [ "$1" = "--help" ] then echo; echo "$0 - Skrypt sprawdzający integralność plików w katalogu"; echo "Przykłady:"; echo " $0 -cl ./ database.txt - tworzy bazę danych katalogu"; echo " $0 -dl ./ database.txt - sprawdza katalog z bazą i pokazuje różnice"; echo; exit; fi ls -la / | grep tmp | grep drwx > /dev/null if [ "$?" = "1" ] then echo "Katalog /tmp nie jest zapisywalny!"; exit; fi TEMP="/tmp/own3d.$RANDOM" if [ "$1" = "-cl" ] then printf "Tworzenie bazy danych..."; find $2 -type f -exec md5sum {} \; > $3 if [ "$?" = "1" ] then echo "Błąd! Nie można utworzyć bazy."; exit; fi echo " [ OK ]"; fi if [ "$1" = "-dl" ] then printf "Trwa porównywanie...."; find $2 -type f -exec md5sum {} \; > $TEMP echo " [ OK ]"; diff $TEMP $3 | grep ["<"">"] > /dev/null echo "Wykryto różnice w plikach:"; diff $TEMP $3 | grep ["<"">"] | sed 's/> //g' | sed 's/< //g' | awk '{print $2}' echo; exit; fi rm $TEMP 1> /dev/null 2> /dev/null exit;