file check

M

myjaeger

Hallo,

ich benötige ein Script (evtl. in Perl) das auf verschiedenen Plattformen (SUN, AIX, HP, ...) prüft, ob eine Datei fertig erstellt wurde.
Ich habe mir gedacht, dass das Script solange in einer Schleife läuft, bis die Datei fertig erstellt ist.

Mein Problem besteht darin, das ich keinen Befehl bzw. keine Funktion kenne, die die Prüfung der Datei auf den verschieden Plattformen übernimmt. ?(

Hat jemand eine Idee???

Viele Grüße, myjaeger
 
So in etwa sollte es gehen. Unter Sun und Linux funzt's.

Gruss Rupert

PHP:
#!/usr/bin/perl -w

$DATEI="meineDatei.txt";

while(1){
    if(defined($f=(stat($DATEI))[7])){
        if($f >= 1024){ # Wenn Datei groesser 1kb
            print "OK Die Datei hat jetzt die erwartete Groesse\n";
            exit(0);
        }
        print "$DATEI gibt es ist aber erst $f Byte gross\n";
    }else{
        print "$DATEI gibt es noch nicht\n";
    }
    sleep(1);
}
 
leider weiß ich nicht wie groß die Datei werden soll.
Ich muss die Datei solange prüfen, bis sich die Größe nicht mehr ändert.
 
Woher weisst du dass sich die Datei nicht mehr aendert? Was ist das fuer eine Datei? Wie schnell wird sie erzeugt? ....
 
es handelt sich um eine Protokolldatei.
Wenn die Datei fetig erstellt ist, hat sie einen Endesatz (immer der gleiche).

Ich habe mir gedacht, ich prüfe die Datei solange, bis sich "nichts mehr tut" und dann schaue ich, ob der der Endesatz vorhanden ist.
Es kann auch vorkommen das die Datei fertig übertragen ist, aber kein Endesatz geschrieben wurde, in diesem Fall liegt ein Fehler vor.
 
Zurück
Oben