# ----------8<-------- schipp ############################## # # 2.) Persitentes Hash # * einlesen # * ueberschreiben # # f_rw_FileMd5Sum_PerlDB # my $PerlDB = $bin_root . "/.File_Md5Sum_PerlDB"; my $PfadFile_PDB ; my $Md5_PDB ; # my %h_FileMd5Sum_PerlDB; <<< siehe: f_exit # sub f_rw_FileMd5Sum_PerlDB { dbmopen( %h_FileMd5Sum_PerlDB, $PerlDB , 0660 ) || f_die( $ScriptName . "::FATAL: Konnte die persistente Hash-Datei nicht oeffnen: '" . $PerlDB . "'\n" ); # #print "\n\nDEVELOPERTEST 07::h_FileMd5Sum_PerlDB\n" ; foreach my $z ( sort( keys( %h_FileMd5Sum_PerlDB ) ) ) { print $z . " :: " . $h_FileMd5Sum_PerlDB{ $z } . "\n"; }; } #EO f_rw_FileMd5Sum_PerlDB ### # ############### # f_copy_hash # sub f_copy_hash { for ( keys( %h_FileMd5Sum_PerlDB ) ) { delete $h_FileMd5Sum_PerlDB{$_}; }; # Alt-Hash-Daten loeschen. %h_FileMd5Sum_PerlDB = (); # Loeschen 2.te %h_FileMd5Sum_PerlDB = %h_File_Md5Sum_dat; # Ab jetzt befinden sich die neuen Daten auf der Festplatte. } #EO f_copy_hash ### # ----------8<-------- schipp ######################################################################## # # f_search_Alarm # # Alle Dateien, bei denen sich die Md5Sum geaendert hat, werden in # eine Alram-Liste ueberfuert. # # Vorgehen: # 1.) Alle Files aus '%h_File_Md5Sum_dat' mit Eintraegen aus # '%h_FileMd5Sum_PerlDB' (Kein Ober- Untermengen-Vergleich) # auf 'Md5Sum' vergleichen. # 1.1) Ist ein Unterschied in der Md5Sum zu erkennen, wird die # Datei in die Alram-Liste eingetragen. # my %h_Md5Sum_Alarm; # sub f_search_Alarm { foreach $Key_FileMd5 ( keys( %h_File_Md5Sum_dat ) ) { foreach $Key_PerlDB ( keys( %h_FileMd5Sum_PerlDB ) ) { $run_through++; if( $Key_FileMd5 eq $Key_PerlDB ) { #print "1:1 Key_PerlDB = " . $Key_PerlDB . "\t\tMd5Sum = " . $h_FileMd5Sum_PerlDB{ $Key_PerlDB } . "\n"; #print "1:1 Key_FileMd5 = " . $Key_FileMd5 . "\t\tMd5Sum = " . $h_File_Md5Sum_dat{ $Key_FileMd5 } . "\n\n"; ################## # Md5Sum-Vergleich if( $h_File_Md5Sum_dat{ $Key_FileMd5 } ne $h_FileMd5Sum_PerlDB{ $Key_PerlDB } ) { print LOG "DEVELOPERTEST::h_File_Md5Sum_dat{ Key_FileMd5 } = '" . $h_File_Md5Sum_dat{ $Key_FileMd5 } . "' = '" . $Key_FileMd5 . "'\n"; print LOG "DEVELOPERTEST::h_FileMd5Sum_PerlDB{ Key_PerlDB } = '" . $h_FileMd5Sum_PerlDB{ $Key_PerlDB } . "' = '" . $Key_PerlDB . "'\n\n---\n\n"; $h_Md5Sum_Alarm{ $Key_FileMd5 } = $h_File_Md5Sum_dat{ $Key_FileMd5 } } } #EO if Key_PerlDB = Key_FileMd5 } #EO foreach h_File_Md5Sum_dat } #EO foreach h_FileMd5Sum_PerlDB #print "\n\nDEVELOPERTEST 10::h_Md5Sum_Alarm\n" ; foreach my $z ( sort( keys( %h_Md5Sum_Alarm ) ) ) { print $z . " :: " . $h_Md5Sum_Alarm{ $z } . "\n"; }; } #EO f_search_Alarm ### # ----------8<-------- schipp