Hilfe bin am verzweifeln. Habe dieses Script geschrieben, ist noch nicht verfeinert aber er kann den Suchstring in der Datei finden. Aber er findet im angegebenen Verzeichnis keine aktuelle Datei, obwohl heute früh aktuelle Dateien in das Verzeichnis stehen.
Kann mir einer sagen was ich falsch mache!!!!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
############################################################################################
# 3 Block hier werden die Transactionlog-Dateien geprüft
sub runSqlTrnCheck
{
#Überprüfung LogDatei-Verzeichnis
# Flag, ob die Gesamtprüfung positiv ist.
# 1 = nein, d.h. In mindestens einem Fall war keine aktuelle Backup-Datei vorhanden.
# 0 = ja, d.h. es war stets eine aktuelle Log-Datei vorhanden.
my $runSQLTrnCheck = 1;
&printLogEntry ("INFO","Verzeichnischeck beginnt");
my $dir = '\\\\XXXXXXX\\f$\\Log\\MSSQL$XXXXXX\\SqlSrvJobs';
opendir(DIR,$dir) or die $!; # Verzeichnis "öffnen"
print LogDatei $dir;
my @verzeichnisse1 = grep{-l $dir .'/'.$_}readdir(DIR);
my $bool_runSqlTrnCheck = 0; #0 = Nein
for my $file(@verzeichnisse1)
{
if(existsActBackup($dir.'/'.$file,1))
{
$bool_runSqlTrnCheck = 1; #1 = Ja
&printLogEntry ("DEBUG","LOG Dateien vorhanden" . $bool_runSqlTrnCheck . " LOG-Dateien gefunden!");
&printLogEntry ("DEBUG", $file . @verzeichnisse1 . " LOG-Dateien im Verzeichnis " . $dir . " vorhanden!");
}
}
if ($bool_runSqlTrnCheck == 1) # 1= Ja
{
&printLogEntry ("INFO","Es besteht in dem Verzeichnis mind. eine aktuelle LOG-Dateien!");
}
else
{
&printLogEntry ("ERROR", "Es besteht in dem Verzeichnis" . $dir . "keine aktuelle LOGdatei!");
$runSQLTrnCheck = 0;
}
unless($runSQLTrnCheck)
{
&printLogEntry ("ERROR", "LOG-Dateien unvollständig !!!!!");
}
else
{
&printLogEntry ("ERROR","Das zu prüfende Verzeichnis wurde nicht gefunden! Bitte prüfen!!");
$runSQLTrnCheck = 0;
} # end of: if ( -e $bkupDirectory )
return $runSQLTrnCheck # Hier wird der ermittelte Rückgabewert aus der Subroutine übergeben!
}# End of: sub runSqlTrnCheck
#***************************
# ++++++++++++++++SubRoutinen++++++++++++++++++++++++++++
# Subroutine1 BackupCheck-Zeitstempel
# 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;
&printLogEntry ("INFO","Aktuelle Dateien vorhanden!");
&printLogEntry ("INFO","file stat($file)");
}
else
{
$tmpValue = 0;
}
return $tmpValue;
};
\n\n
<!--EDIT|leissi|1174290123-->