[AIX] No Such file or directory ?!



  • Hallo leute,

    ich verstehe AIX nicht so ganz. Ich habe ein Tool, was eine Shell session (genauer stdout) loggt. Beim beenden schließe ich das file und rufe dann per system (quick'n'dirty ;->) gzip auf um es zu komprimieren.

    Auf Solaris9/10 und Linux SLES9/10 läuft alles sauber. Auf AIX jedoch bekomme ich (nach dem Zippen des Files) die Meldung:

    xyz.log: No such file or directory

    Gzip hat sauber gearbeitet und nach dem Zippen wird das Programm verlassen.

    Meine Vermutung ist, das AIX das File nicht direkt schließt, sondern das Programmende abwartet?! Jedenfalls hat ein zusätzliches "sleep 10" vor dem Gzip Aufruf nichts gebracht.

    Hier noch die betroffenen Zeilen:

    //[...]
        close(script.fd);
        mysyslog(LOG_INFO, "stopping root session on %s", ttyname(0) );
    
        gzip_logfile(script.name);
    
        exit(signum);
    }
    
    //[...]
    
    int gzip_logfile(char *filename)
    {
         char *lpOutput = NULL;
         lpOutput = (char *) calloc(6 + strlen(filename), sizeof (char));
         if (lpOutput)
         {
              strcpy(lpOutput,"gzip ");
              strcat(lpOutput,filename);
              system(lpOutput);
              free(lpOutput);
        }
        else
            return -1;
    
    return 0;
    

    Vllt fällt Euch ja dazu was ein?!

    Gruß
    Marco

    PS.: Wenn ich das File nicht zippe erscheint auch die Fehlermeldung nicht.



  • gzip löscht ja die Originaldatei nach der Komprimierung und Speicherung als "xyz.gz".
    Wahrscheinlich ist genau das das Problem: Irgendein Prozess hat die Datei noch geöffnet. Bei Linux kann man Dateien auch schreiben (und löschen), während sie von anderen Prozesse geöffnet sind. Bei der AIX geht das vielleicht nicht.

    (Ein ähnlicher Effekt tritt auf, wenn man Linux-Programme mit Cygwin unter Windows laufen lässt.)



  • Moin!

    Also ich habe jetzt noch ne feststellung gemacht:

    Auf einer 2. AIX Kiste tritt das problem nicht auf... dafür auf einer 2. Solaris Kiste...

    Ich wüsste auch nicht welcher Prozess da noch nen Zugriff drauf haben soll, da ja eigentlich das File geschlossen wird bevor ich Gzip aufrufe (Zeile 2)...


Anmelden zum Antworten