Sprawdzanie czy któreś pliki w danym folderze (i podfolderach) zostały zmienione lub podmienione

W niektórych sytuacjach zachodzi potrzeba upewnienia się czy pliki które znajdują się w danej lokalizacji są tymi plikami którymi mają być. Najprościej rzecz ujmując.

Może to posłużyć weryfikacji np. plików DOCX z dokumentami umów (czy nikt nie wprowadził nieustalonych zmian w zapisie umów), sprawdzeniu czy pliki nie mają wirusów albo czy pliki strony internetowej nie mają złośliwego kodu. Potrzeby mogą być różne..

Skorzystać tutaj można z systemu kontroli wersji – np. Subversion (SVN). Poświęciliśmy mu dość sporo artykułów na naszym serwisie.

Jednak jest metoda znacznie szybsza i sprytniejsza 🙂 Dodatkowo nie wymaga instalacji żadnego dodatkowego oprogramowania i można to zrobić jedynie w konsoli Linuxa.

Posłużymy się tutaj sumą kontrolną pliku – MD5.

Już poruszaliśmy to zagadnienie na naszym serwisie:

[LIFEHACK] Jak w linux sprawdzić sumę kontrolną MD5 dowolnego pliku?

Najpierw musimy „zapisać” stan początkowy z przed modyfikacji. Będzie on zapisany w 1 pliku tekstowym, który możemy np. wysłać na e-mail albo zapisać na pendrive. Na podstawie tego pliku tekstowego będziemy potem porównywać czy nic się w danych plikach nie zmieniło. Czyli musimy mieć potem dostęp do tego pliku aby przeprowadzić weryfikację.

Wejdź do folderu gdzie znajduje się lista plików do (późniejszego) porównania i wpisz:

md5sum * > lista_plikow.chk

Otrzymasz w ten sposób listę plików i odpowiadające im sumy kontrolne.

Przykład zawartości dla listy plików z CMS WordPress:

b9142a5f513a565bcb15430f4982000e  index.php
5c88f9b1e75f5db710c2dcfcdeab1d24  wp-activate.php
f3f43bcb755e7599abfd0cb56b710e81  wp-blog-header.php
4a98c020baeb9e82f5f577e737234f56  wp-comments-post.php
ec83713470bf87b026cfe4d446889c90  wp-config.php
3e42b983e0b6999d40027bada5f512e7  wp-config-sample.php
0f31e7fef84445fe4f4bf7c092ec6c10  wp-cron.php
e5afa38ed5c796d43f301825975ab547  wp-links-opml.php
b133347f6df56277b32a5405153bacb4  wp-load.php
0f216c7abc1bed25c99b17fa86a3da58  wp-login.php
c25ef6fbf40fbc76be342d490c0e874b  wp-mail.php
edb6d70dc7dcdd73d2558ec8f7e528de  wp-settings.php
b7deb3dbd61d082b99db157ae02a5280  wp-signup.php
d74b02cd709360ef78dc226cdbabce91  wp-trackback.php
ec0319c65e8096c460fe78feee8b2288  xmlrpc.php

W przyszłości jeśli będziesz chciał/chciała zweryfikować czy nic się nie zmieniło musisz się tym plikiem posłużyć poprzez komendę:

md5sum -c lista_plikow.chk

Listing po pomyślnej weryfikacji:

index.php: DOBRZE
wp-activate.php: DOBRZE
wp-blog-header.php: DOBRZE
wp-comments-post.php: DOBRZE
wp-config.php: DOBRZE
wp-config-sample.php: DOBRZE
wp-cron.php: DOBRZE
wp-links-opml.php: DOBRZE
wp-load.php: DOBRZE
wp-login.php: DOBRZE
wp-mail.php: DOBRZE
wp-settings.php: DOBRZE
wp-signup.php: DOBRZE
wp-trackback.php: DOBRZE
xmlrpc.php: DOBRZE

Listing pokazujący, że w jednym pliku coś się zmieniło:

index.php: DOBRZE
wp-activate.php: DOBRZE
wp-blog-header.php: DOBRZE
wp-comments-post.php: DOBRZE
wp-config.php: NIEPOWODZENIE
wp-config-sample.php: DOBRZE
wp-cron.php: DOBRZE
wp-links-opml.php: DOBRZE
wp-load.php: DOBRZE
wp-login.php: DOBRZE
wp-mail.php: DOBRZE
wp-settings.php: DOBRZE
wp-signup.php: DOBRZE
wp-trackback.php: DOBRZE
xmlrpc.php: DOBRZE
md5sum: UWAGA: 1 policzona suma się NIE zgadza

I tu może się zapalić dla Ciebie czerwona lampka – „wiedz, że coś się dzieje” 🙂

Powyższe komendy mają zastosowanie jedynie do plików z danego folderu. Jeśli chcesz zagłębić się we wszystkie podfoldery uruchom:

find -type f -exec md5sum "{}" + > lista_plikow.chk

 

grafika: alphacoders.com

Możesz również polubić…

Inna porada:
Jak spakować plik/folder przez TAR i zaraz po skończeniu procesu…