Hallo zusammen, ich habe ineen sehr stark frequentierten Mailserver und wollte einmal täglich die Mail-Logfiles sichern, und dann löschen. Dazu hatte ich folgendes geplant: erst "mv mail.log mail_backup.log", und dann mail_backup.log packen, auf meinen Rechner zu kopiern und dann zu löschen. Leider finktionniert das nicht, denn wenn ich ein "mv mail.log mail_backup.log" mache, wird bei neuen Mail-Log Einträgen nicht ein neues mail.log erzeugt und die log-einträge darein geschrieben, sondern es werden jetzt auf einmal die Einträge in das mail_backup.log geschrieben. Und wenn ich davon ein backup mache und es dann lösche, wird überhaubt nichts mehr "geloggt" :( Hat jemand einen Lösungsvorschlag zum sichern der Mail-Logfiles? Vielen Dank für Ihre Mühe, Es grüßt Sie freundlich, Kai Seefeldt ========================= ks@1-2-3-gaestebuch.de http://www.1-2-3-gaestebuch.de/?rf=mail
On Thursday, 27. September 2001 18:05, Kai Seefeldt wrote:
Hat jemand einen Lösungsvorschlag zum sichern der Mail-Logfiles? Vielen Dank für Ihre Mühe,
du verschiebst das Logfile und schickst dem syslog ein HUP signal, daraufhin legt der eine neue Datei an und du kannst die andere kompremieren. Peter
ich habe ineen sehr stark frequentierten Mailserver und wollte einmal täglich die Mail-Logfiles sichern, und dann löschen. Dazu hatte ich folgendes geplant: erst "mv mail.log mail_backup.log", und dann mail_backup.log packen, auf meinen Rechner zu kopiern und dann zu löschen. Leider finktionniert das nicht, denn wenn ich ein "mv mail.log mail_backup.log" mache, wird bei neuen Mail-Log Einträgen nicht ein neues mail.log erzeugt und die log-einträge darein geschrieben, sondern es werden jetzt auf einmal die Einträge in das mail_backup.log geschrieben. Und wenn ich davon ein backup mache und es dann lösche, wird überhaubt nichts mehr "geloggt" :(
Hi kai, das liegt daran, dass der Server-Prozess die Datei nicht per Namen sondern per Handle anspricht. Mit mv bennenst Du die Datei auf einer gleichen Partition ja eigentlich nur um. Um den Serverprozess eine neue Datei schreiben zu lassen, sollte ein kill -HUP reichen, vielleicht auch ein rcSERVER restart (macht im Prinzip das gleiche). Aber statt die Logs von Hand wegzusichern, solltest Du Dir mal /etc/logfiles anschauen (sofern Du ne SuSE hast). Bei RedHat war das glaube ich logrotate. Dort kannst Du das sichern von logfiles automatisieren. HTH, Marcel -- _\|/_ My ~ is my castle... `(o-o)' /-----------------oOO-(_)-OOo---------------------------------------\ | Marcel Meyer | c/o Fachschaft Mathe/Physik/Info | | meyerm@fs.tum.de | Technische Universitaet Muenchen | | Tel.: +49.89.289-22997 | Arcisstrasse 19, D-80290 Muenchen | \-------------------------------------------------------------------/
* Marcel Meyer schrieb am 27.09.01 um 18:35 Uhr:
Um den Serverprozess eine neue Datei schreiben zu lassen, sollte ein kill -HUP reichen, vielleicht auch ein rcSERVER restart (macht im Prinzip das gleiche).
Hi Marcel, das stimmt nicht ganz. Bei rc... restart wird der jeweilige Prozess beendet, und dann neu gestartet. Wenn du einem inetd oder einem syslog aber ein -HUP sendest (in den init Scripten oft auch als reload implementiert) wird der Prozess *nicht* beendet. Der inetd weiss dann, dass er seine config neu einlesen soll, der syslog schaut nach seinem logfiles. Was ein prozess mit einem Signal macht, dass er bekommt, ist (abgesehen von SIGKILL) sein Bier. Gruss -Marc -- | ...and don't forget: Linux rulez! | | | | http://www.links2linux.de <-- Von Linux-Usern fuer Linux-User |
Marc Schiffbauer wrote:
* Marcel Meyer schrieb am 27.09.01 um 18:35 Uhr:
Um den Serverprozess eine neue Datei schreiben zu lassen, sollte ein kill -HUP reichen, vielleicht auch ein rcSERVER restart (macht im Prinzip das gleiche).
das stimmt nicht ganz. Bei rc... restart wird der jeweilige Prozess beendet, und dann neu gestartet. [...]
Ja, aber dafür gibt's bei vielen rc-Skripten (einschließlich rcsyslog) noch das Argument reload, mit dem (falls möglich) ohne dessen Neustart die Konfiguration des jeweiligen Dienstes neu gelesen wird. (In den meisten Fällen wird dazu ein SIGHUP geschickt, wie von Marcel beschrieben.) Im Falle des syslogd schließt das auch ein, daß die Logfiles geschlossen und neu geöffnet werden. Um auf das Ausgangsproblem zurückzukommen: Falls die Aufgabe ohne logrotate gelöst werden soll (z.B., weil eben die tägliche Sicherung auf einem anderen Rechner gewünscht ist), dann wäre der richtige Ablauf etwa wie folgt: mv mail.log mail_backup.log rcsyslog reload gzip mail_backup.log scp mail_backup.log.gz anderer_rechner:irgendwohin rm mail_backup.log.gz Am besten verknüpft man die Kommandos noch mit && um sicherzustellen, daß keines der Kommandos ausgeführt wird, wenn einer der vorherigen Schritte schiefgegangen ist. (Besonders wichtig zwischen scp und rm). Eilert -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Eilert Brinkmann -- Universitaet Bremen -- FB 3, Informatik eilert@informatik.uni-bremen.de - eilert@tzi.org http://www.informatik.uni-bremen.de/~eilert/
* Kai Seefeldt schrieb am 27.09.01 um 18:05 Uhr:
Hallo zusammen,
Hallo Kai,
ich habe ineen sehr stark frequentierten Mailserver und wollte einmal täglich die Mail-Logfiles sichern, und dann löschen. Dazu hatte ich folgendes geplant: erst "mv mail.log mail_backup.log", und dann mail_backup.log packen, auf meinen Rechner zu kopiern und dann zu löschen. Leider finktionniert das nicht, denn wenn ich ein "mv mail.log mail_backup.log" mache, wird bei neuen Mail-Log Einträgen nicht ein neues mail.log erzeugt und die log-einträge darein geschrieben, sondern es werden jetzt auf einmal die Einträge in das mail_backup.log geschrieben. Und wenn ich davon ein backup mache und es dann lösche, wird überhaubt nichts mehr "geloggt" :(
Das ist klar, denn syslog schreibt in eine bestimmte inode. Wenn du also eine Datei mv'st, aendert sich die inode nicht. Wenn du schon sowas machen willst, dann muesstest du es in etwa so machen: cat aktuelles_log | gzip > altes_log.gz und dann cat /dev/null > aktuelles_log Das hat aber alles den Riesennachteil, dass es zu Inkonsistenzen und aufgesplitteten log nachrichten kommt, wenn man sowas mit so einer Holzhammermethode macht.
Hat jemand einen Lösungsvorschlag zum sichern der Mail-Logfiles? Vielen Dank für Ihre Mühe,
Ja, logrotate ist dein Freund. Der genau dazu geschrieben worden. Hiermit kannst du sagen wann und/oder bei welcher Groesse, welches logfile rotiert werden sollen. Die rotierten files kannst du dann sichern, loechen, drucken und an die Wand haengen, etc. Gruss -Marc -- | ...and don't forget: Linux rulez! | | | | http://www.links2linux.de <-- Von Linux-Usern fuer Linux-User |
participants (5)
-
Eilert Brinkmann
-
Kai.Seefeldt@t-online.de
-
Marc Schiffbauer
-
Marcel Meyer
-
Peter Wiersig