Alexander Metz: Cron-Job, um Logfiles mit untersch. Namen zu zippen

Hallo,

Ich habe eine Routine auf meinem UNIX-Server, mit der ich per Cron-Job jede Woche mein Access-Logfile zippe, und zwar Montag Morgens um 0:00 Uhr.
So sieht das Teil aus:

0 0 * * 1 gzip ~/usr/local/etc/httpd/logs/access_log

Funktioniert wunderbar, das File, das generiert wird, heisst "access_log.gz".
Was aber, wenn ich 2 Wochen nichts mache? Das .gz-File wird mit dem neuen überschrieben.

Ich möchte einen unterschiedlichen Namen für jedes .gz-File hinkriegen, sowas wie "acces_log_19991102.gz".

Hat jemand diesbezüglich irgendwelche Ideen? Vielen Dank im Voraus!

  1. 0 0 * * 1 gzip ~/usr/local/etc/httpd/logs/access_log

    Statt eines UNIX-Kommandos kannst Du dort auch ein eigenes Shell-Skript "zip_accessfile" eintragen ...

    Was aber, wenn ich 2 Wochen nichts mache? Das .gz-File wird mit dem neuen überschrieben.
    Ich möchte einen unterschiedlichen Namen für jedes .gz-File hinkriegen, sowas wie "acces_log_19991102.gz".

    ... und in diesem Shell-Skript berechnest Du Dir dann einen passenden Dateinamen, etwa mit

    DIR="~/usr/local/etc/httpd/logs/"
    FILENAME="access_log"
    gzip $DIR/$FILENAME

    DATUM=date +"%Y%m%d"
    mv   $DIR/$FILENAME $DIR/$FILENAME.$DATUM.gz

    1. Was aber, wenn ich 2 Wochen nichts mache? Das .gz-File wird mit dem neuen überschrieben.
      Ich möchte einen unterschiedlichen Namen für jedes .gz-File hinkriegen, sowas wie "acces_log_19991102.gz".

      Dein nächstes Posting im Forum wird vermutlich lauten: "Was mache ich gegen das Überlaufen meines Dateisystems durch die vielen Archivdateien?".

      Die Lösung dafür lautet dann ungefähr "find $DIR -ctime 14 -name access_log\* -exec rm {} ;" ...

      1. Hört sich gut an, vielen Dank!
        Das mit den Archivdateien krieg ich schon hin :-)