Hallo Habe ein Problem beim Zeitstempel.
Folgendes wollte vergleichen ob der Zeitstempel der Datei nicht älter als 24 Stunden ist. Leider kommt nicht das erwartete Ergebnis raus. Eine der Dateien ist älter als 24 Stunden. Kann jemand mir ein Tip geben was ich falsch mache?
# Hier wird die Datei auf aktuelles Datum geprüft. Ergebnis wird dann ausgegeben.
print LogDatei ("INFO : ","Der Zeitstempel der Datei wird geprüft!\n");
my $t = time();
my $max_age = $t;
my $dir = $DateiPfad;
opendir(DIR,$dir) or die $!; # Verzeichnis "öffnen"
my @verzeichnisse = grep{-f $dir .'/'.$_}readdir(DIR);
if(existsTimeStamp($file, 24))
{
# Wenn Datei im Verzeichnis vorhanden, dann prüfen ob Suchstring in der Datei enthalten ist.
print LogDatei "Die Datei: " . $file . " wurde im Verzeichnis gefunden und hat ein aktuelles Datum!\n";
und hier die Subroutine zum Zeitstempel:
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
# Subroutine1 Datei-Zeitstempel nicht älter als 1 Tag
# 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 existsTimeStamp
{
my ($file,$max_age) = @_;
my $tmpValue = 0;
#print LogDatei $tm;#
my $age = (time - (stat($file))[10]) / ( 24 * 60 * 60 );
print LogDatei ("Info: " . $age . "und" . $max_age . "Alter");
if ($age < $max_age)
{
$tmpValue = 1;
# print LogDatei ("INFO: ","Aktuelle Datei" . $file . " vorhanden!");
# print LogDatei ("INFO","file stat($datei)");
}
else
{
$tmpValue = 0;
# print LogDatei ("INFO: ","Aktuelle Datei" . $file . " nicht vorhanden!");
}
return $tmpValue;
}
Rausschreiben tut er mir folgendes zu $age und $max_age
QuoteInfo: $age=113.614039351852 und $max_age= 24 Alter
Vielen Dank für Eure Hilfe
Gruss
Leissi
edit pq: code-tags hinzugefügt\n\n
<!--EDIT|pq|1184234911-->