Cron-Job, um Logfiles mit untersch. Namen zu zippen
Alexander Metz
- webserver
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!
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
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 {} ;" ...
Hört sich gut an, vielen Dank!
Das mit den Archivdateien krieg ich schon hin :-)