#!/usr/bin/perl use strict; use warnings; use time::localtime; use Data::Dumper; # 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; 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) );                                                         #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; $i <= $numberProjects; $i++)   {      my $bkupDirectory = $backupPath . "\\" . $pjDomain[$i] . "_" . $pjName[$i] . "_db";      print LogDatei "#######################################################################################################################\n";      print LogDatei "  " . $tm . "\n \n Prüfe Existenz von " . $bkupDirectory . "\n";      print LogDatei "#######################################################################################################################\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 "\n################################################################################################################\n";      print LogDatei "\n ****************************Backup vorhanden***************************** \n" . $bool . " Backupdatei gefunden!\n";   print LogDatei $file . "\n \n" . @verzeichnisse . " Backupdateien im Verzeichnis " . $bkupDirectory . " vorhanden!";   print LogDatei "\n################################################################################################################\n";   }   else   {      #print LogDatei "--------------------------------------------------------------------------\n";      #print LogDatei " Aktuelle Datei ist nicht vorhanden!\n";      #print LogDatei "--------------------------------------------------------------------------\n";   }             }   if ($bool == 1)   {       print LogDatei "--------------------------------------------------------------------------\n";       print LogDatei "INFO : Es besteht in dem Verzeichnis mind. eine aktuelle Backupdatei!\n";       print LogDatei "--------------------------------------------------------------------------\n\n\n";   }   else         {       print LogDatei "************************************************************************************ **\n";       print LogDatei "**********ERROR: Es besteht in dem Verzeichnis keine aktuelle Backupdatei!************\n";       print LogDatei "************************************************************************************ **\n\n\n";       $global_boolean = 0;              }           # 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;       #print LogDatei "Keine aktuellen Dateien vorhanden! \n";         }         return $tmpValue;   }     } ## Hier wird nach Durchlauf der Kontrolle ein Statment abgegeben wenn Error auftrat!  unless($global_boolean)    {       print LogDatei "########################################################################################################################\n\n";       print LogDatei "      ********** ERROR: Backup ist unvollständig !! Bitte prüfen!!! ************\n\n";       print LogDatei "########################################################################################################################\n";       print LogDatei "########################################################################################################################\n\n\n";    }     }     ######################################################################################################################### ########################################################################################################################## ########################################################################################################################### #!/usr/bin/perl # Naechster Teil Überprüfung des Verzeichnisses OTA auf aktuelle Dateien wenn keine vorhanden wird ein Fehler ausgegeben! use strict; use warnings; use time::localtime; use Data::Dumper; # Flag, ob die Gesamtprüfung positiv ist. # 0 = nein, d.h. In mindestens einem Fall war keine aktuelle OTA-Datei vorhanden. # 1 = ja, d.h. es ware stets eine aktuelle OTA-Datei vorhanden. my $global_booleans = 1; print LogDatei  "\n##########################################################################################################################"; print LogDatei  "\n##########################################################################################################################"; print LogDatei  "\n##########################################################################################################################"; print LogDatei " $tm \n\n\n"; my $dir = 'H://Perl//BackupCheck//OTA'; opendir(DIR,$dir) or die $!; # Verzeichnis "öffnen" my @verzeichnisse1 = grep{-f $dir .'/'.$_}readdir(DIR);      my $bool1 = 0;      for my $file1(@verzeichnisse1)     {     if(existsActOTA ($dir.'/'.$file1,1))   {      $bool1 = 1;      print LogDatei "\n-------------------------------------------------------------------------------------- --------------------------\n";      print LogDatei "\n ----------------------------OTA Dateien vorhanden----------------------------- \n" . $bool1 . " OTA-Dateien gefunden!\n";   print LogDatei $file1 . "\n \n" . @verzeichnisse1 . " Backupdateien im Verzeichnis  " . $dir . "  vorhanden!";   print LogDatei "\n-------------------------------------------------------------------------------------- ---------------------------\n";   }   else   {      print LogDatei "--------------------------------------------------------------------------\n";      print LogDatei " Aktuelle OTA-Datei ist nicht vorhanden!\n";      print LogDatei "--------------------------------------------------------------------------\n";   }             }   if ($bool1 == 1)   {       print LogDatei  "\n############################################################################################\n";       print LogDatei "--------------------------------------------------------------------------\n";       print LogDatei "INFO : Es besteht in dem Verzeichnis mind. eine aktuelle OTA-Dateien!\n";       print LogDatei "--------------------------------------------------------------------------\n";       print LogDatei  "\n############################################################################################\n";   }   else         {       print LogDatei "--------------------------------------------------------------------------\n";       print LogDatei "ERROR: Es besteht in dem Verzeichnis keine aktuelle OTA-Dateien!\n";       print LogDatei "--------------------------------------------------------------------------\n";       $global_booleans = 0;    }     ## Hier wird nach Durchlauf der Kontrolle ein Statment abgegeben wenn keine aktuellen Dateien vorhanden sind!       unless($global_boolean)    {       print LogDatei "########################################################################################################################\n\n";       print LogDatei "      ********** ERROR: OTA-Dateiverzeichnis ist unvollständig !! Bitte prüfen!!! ************\n\n";       print LogDatei "########################################################################################################################\n";       print LogDatei "########################################################################################################################\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 existsActOTA   {       my ($file1,$max_age) = @_;       my $tmpValue = 0;       my $age = (time - (stat($file1))[10]) / (60 * 60 * 24);   if ($age < $max_age)   {           $tmpValue = 1;       print LogDatei "   " . $tm . "  Aktuelle OTA-Dateien im Ordner OTA vorhanden! \n";       print LogDatei "file  stat($file1)\n";   }   else   {         $tmpValue = 0;      # print LogDatei "Keine aktuellen Dateien vorhanden! \n";         }         return $tmpValue;   }