#!/usr/bin/perl -w use strict; use Data::Dumper; my $ausgabe_Datei = "backupCheck.txt"; open(LogDatei, ">backupCheck.txt") or die "Kann Log Datei nicht anlegen : $!"; my $tm = localtime; print LogDatei " $tm\n\n\n"; my $parameterFile = "input/Main.cfg"; open(IN, $parameterFile) || die "Paramterfile $parameterFile nicht gefunden!"; my @par = ; close(IN); eval( join("\n", @par) ); # Flag, ob die Gesamtprüfung positiv ist. # 0 = nein, d.h. In mindestens einem Fall war keine aktuelle Backup-Datei vorhanden. # 1 = ja, d.h. es ware stets eine aktuelle Backup-Datei vorhanden. my $global_boolean = 1; #wird erst später aus DOMS.mdb ermittelt, vorerst wird mit Hardcodierten Werten gearbeitet my (@pjDomain,@pjName); $pjDomain[0] = "ZITA_PKM"; $pjName [0]  = "Phoenix"; $pjDomain[1] = "ZITA_ATF"; $pjName [1]  = "ZITA_522"; $pjDomain[2] = "ZITA_ATF"; $pjName [2]  = "TLA"; my $numberProjects = $#pjName; my $backupPath = 'H:\\Perl\\BackupCheck\\_backup'; # Nun wird für jedes TestDirector-Projekt überprüft, ob im # Backup-Bereich des Servers ein aktuelles Backup vorliegt. for my $i (0 .. $numberProjects) {   my $bkupDirectory = "$backupPath\\$pjDomain[$i]_$pjName[$i]_db";   print LogDatei '#' x 130, "\n";   print LogDatei "  $tm\n\nPrüfe Existenz von $bkupDirectory\n";   print LogDatei '#' x 130, "\n";   if ( -e $bkupDirectory ) {      print LogDatei "Verzeichnis ist vorhanden!\n";      opendir(DIR,$bkupDirectory) or die "Kann $bkupDirectory nicht öffnen: $!\n";      my @verzeichnisse = grep{-f $bkupDirectory .'/'.$_}readdir(DIR);      my $bool = 0;      for my $file(@verzeichnisse) {         if(existsActBackup($bkupDirectory.'/'.$file,1)) {            $bool = 1;            print LogDatei '#' x 130, "\n";            print LogDatei '#' x 30, "Backup vorhanden", '#' x 30, "$bool Backupdatei gefunden!\n";            print LogDatei "$file\n\n", @verzeichnisse, " Backupdateien im Verzeichnis $bkupDirectory vorhanden!\n";            print LogDatei '#' x 130, "\n";         } else {            #print LogDatei '-' x 80, "\n";            #print LogDatei " Aktuelle Datei ist nicht vorhanden!\n";            #print LogDatei '-' x 80, "\n";         }      }      if ($bool == 1) {         print LogDatei '-' x 80, "\n";         print LogDatei "INFO : Es besteht in dem Verzeichnis mind. eine aktuelle Backupdatei!\n";         print LogDatei '-' x 80, "\n";      } else {         print LogDatei '*' x 130, "\n";         print LogDatei '*' x 10, "ERROR: Es besteht in dem Verzeichnis keine aktuelle Backupdatei!", '*' x 10, "\n";         print LogDatei '*' x 130, "\n";         $global_boolean = 0;      }   } } ## Hier wird nach Durchlauf der Kontrolle ein Statment abgegeben wenn Error auftrat! unless($global_boolean) {   print LogDatei '*' x 130, "\n\n";   print LogDatei ' #' x 6, " ERROR: Backup ist unvollständig !! Bitte prüfen!!! ", ' #' x 6, "\n\n";   print LogDatei '*' x 130, "\n";   print LogDatei '*' x 130, "\n\n\n"; } # Hier wird geprüft ob aktuelle Datei vorliegt oder nicht # return: #  0 = Die überprüfte Datei ist nicht aktuell genug #  1 = Die überprüfte Datei ist aktuell genug sub existsActBackup {   my ($file,$max_age) = @_;   my $tmpValue = 0;   #print LogDatei $tm;   my $age = (time - (stat($file))[10]) / (60 * 60 * 24);   if ($age < $max_age) {      $tmpValue = 1;      print LogDatei "   $tm Aktuelle Dateien vorhanden!\n";      print LogDatei "file  stat($file)\n";      #print LogDatei "file2 $file\n";   } else {      #$tmpValue = 0; diese Zuweisung ist nicht notwendig, da $tmpValue mit 0 definiert wird      #print LogDatei "Keine aktuellen Dateien vorhanden!\n";         }   return $tmpValue; }