Dateien mit Uhrzeit abfragen!
|
Seitenanfang |
| Hi, habe ein Problem und zwar möchte ich prüfen ob eine LogDatei um 7:00 Uhr z.B. erstellt wurde! Also Beispiel ich starte das Programm um 9:30 und möchte wissen ob um 9:00 eine LogDatei erstellt wurde! Wie kann ich das machen??? Gruss Joerg
Datum: 14.12.2005-10:16

|
re: Dateien mit Uhrzeit abfragen!
|
Seitenanfang |
Hi, mit stat():
my $file = '/path/to/file/testlog.log'; my ($atime,$mtime,$ctime) = (stat($file))[8,9,10]; print "atime: $atime\nmtime: $mtime\nctime: $ctime\n";
das gibt Dir das unter Linux die Zeit (in Epoch Sekunden) aus. Den Zeitpunkt, an dem die Datei erstellt wurde, kannst Du allerdings so gar nicht ermitteln, sondern nur, wann sie das letzte Mal geändert, bzw. geöffnet wurde. Reicht das?svenXY
Datum: 14.12.2005-12:14

|
re: Dateien mit Uhrzeit abfragen!
|
Seitenanfang |
| Hi danke für den Tip nur das ist es leider nicht was ich benötige! Die Dateien werden stündlich neu erzeugt so das jede Stunde eine neue Datei abgelegt wird! Mal ne Frage ich habe was gefunden und zwar next unless -M $file > 0 Dateien sind neuer als Prozess kann ich so eine Variable benutzen?? Gruss Joerg
Datum: 14.12.2005-12:59

|
re: Dateien mit Uhrzeit abfragen!
|
Seitenanfang |
Hi, kannst Du die Logik nicht in die Log-Dateien legen (z.B. die Log-Dateien mit Uhrzeit benennen oder so)?Ja, Du kannst sowas wie -M benutzen, aber das wird auch nur sehen, wann die Datei das letzte Mal verändert wurde. Sorry, ist so bei Linux. Also entweder die Datei entsprechend benennen, oder, wenn es eine korrekte Log-Datei ist, die erste Zeile lesen und das Datum/ die Uhrzeit extrahieren, oder - als dritte Möglichkeit - bei erstem generieren der Datei eine zweite Datei generieren, in der (nur) das Datum steht. Gruss, svenXY
Datum: 14.12.2005-14:27

|
re: Dateien mit Uhrzeit abfragen!
|
Seitenanfang |
| Hi Sven, mal ne Frage kann ich nicht die Abfrage so machen?? Hab schon getestet, war zwar erfolgreich aber vielleicht kannst Du mal nachsehen ob ich da noch ein Fehler drin habe??? Hier mein Einbau sub existsActBackup { my ($file,$max_age) = @_; my $tmpValue = 0; #print LogDatei $tm ; my $age = (time - (stat($file))[10]) / (60 * 60 * 1);#An dieser Stelle wird der Zeitstempel geprüft max. 1Stunde zurück! 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;
Datum: 14.12.2005-14:44

|
re: Dateien mit Uhrzeit abfragen!
|
Seitenanfang |
Hi, klar kannst Du es so machen. Allerdings ist es - wie gesagt, die ctime, die du hier heranziehst, das ist unter Linux die "time of last modification of fiule status information" - und damit meist die Zeit der letzten Modifikation. Wenn das Dein Problem löst - gut.Code sieht soweit gut aus - mal davon abgesehen, dass Du weder use strict benutzt, noch Deine Vatiablen deklarierst, was schlechter Stil ist ;-) svenXY
Datum: 14.12.2005-15:58

|
re: Dateien mit Uhrzeit abfragen!
|
Seitenanfang |
Hi Sven, ne die Variablen und so weiter hab ich noch vorher zu stehen habe nur den teil rauskopiert in dem die Zeit abgefragt wird! ;-(Gruss Leissi
Datum: 14.12.2005-16:31

|
re: Dateien mit Uhrzeit abfragen!
|
Seitenanfang |
| Hi, die $ctime ist die Zeitder letzten Indode-Änderung. Das kann also auch bedeuten, dass sie vielleicht umbenannt wurde oder ihre Dateirechte geändert. Es ist unter Linux in der Tat, etwas schwierig mit der CreationTime, man sollte sich die in die erste Zeile einer Logdatei schreiben oder die Datei mit einem Erstellzeitpunkt im Namen erstellen. -uw
Datum: 16.12.2005-04:44

|
re: Dateien mit Uhrzeit abfragen!
|
Seitenanfang |
| also ungefähr genau das, was ich vier postings vorher vorgeschlagen habe ;-)
Datum: 16.12.2005-09:16

|