[Erledigt] Datei monatl. automatisiert umbennen

zeroC00L

New member
Registriert
30 Juli 2009
Beiträge
1.754
Hallo Community!

Ich habe für meinen Proxyserver einen SyslogServer welcher seine Aufgabe auch wunderbar verrichtet. Bei 2200 Client wächst das Log allerdings relativ schnell an (100GB p/Monat) und Abfragen daraus werden mühsam.

Wie kann ich es bewerkstelligen, dass ich das Logfile automatisiert alle 14 Tage umbenenne und beim Namen das aktuelle Datum anhänge!?

Danach würde ich den syslog-ng Dienst neu starten und es legt sich ein neues Logfile an, welches in 14 Tagen wieder umbenannt wird ...

Grüße, Audrey
 
Zuletzt bearbeitet:
Ist der typische Kandidat nicht logrotate? Der dürfte bei den meisten Distributionen vorinstalliert sein?
 
UNFUG
hier stand Unfug
 
Zuletzt bearbeitet:
Eine Option wäre ein einfaches Bash-Script, welches du mittels cron alle 14 Tage startest. Bei Interesse kann ich dir da auch was schreiben.

Grüße

Fabian
 
das Datum kannst Du ganz leicht ermitteln:
Code:
d_DATE="`date +%Y-%m-%d_%H-%M-%S`"
In der Variable $d_DATE steht dann das Datum.
Dann als CronJob:
Code:
mv <datei> <datei>.bak$d_DATE

Grüße,
j.
 
Hi,

das ist ganz klar ein Job für logrotate. Schau dir als Beispiele die Konfigurationen unter /etc/logrotate.d/ an. Normalerweise numeriert logrotate die Archivdateien einfach durch, aber auch das kann man natürlich umkonfigurieren: http://stackoverflow.com/questions/9555769/how-to-insert-a-date-inside-the-filename-with-logrotate (nicht selbst probiert, nur gegugelt).

@tapf!, joker4791: selbst gestrickte Sachen sind ja nett und lehrreich, aber ein Standardtool berücksichtigt auch Fälle auf die man selbst nie kommen würde ... ;)
 
Zuletzt bearbeitet:
Super Leute, Danke.

Ich werde mir morgen logrotate mal ansehen. Wenns mit Boardmitteln geht ist mir das am liebsten.

Ich geb dann noch mal laut wenn ichs geschaft habe.

Mercy, Mercy, Mercy
Audrey
 
ps. Dein besonderer Freund ist die Debug-Funktion von logrotate, die Dir zeigt was logrotate tun würde ohne es wirklich zu tun:
Code:
logrotate [B]-d[/B] /etc/logrotate.conf
Außerdem ggf. in Kombination mit -f.

ps2. ist das der nette Proxy mit dem Du letzthin die Anmeldeprobleme hattest? Haben den damals nicht Andere administriert?
 
Zuletzt bearbeitet:
selbst gestrickte Sachen sind ja nett und lehrreich, aber ein Standardtool berücksichtigt auch Fälle auf die man selbst nie kommen würde ...
Eines wurde noch nicht erwähnt:
Ein einfacher "mv"-Befehl muss nicht immer von Erfolg gekrönt sein. Ich habe auch schon Fälle erlebt, in denen der Prozess, der die Logdatei füllt, brav in diese Log-Datei weiter geschrieben hatte, obwohl sie umbenannt oder gar gelöscht wurde.
 
Moin
Ich habe auch schon Fälle erlebt, in denen der Prozess, der die Logdatei füllt, brav in diese Log-Datei weiter geschrieben hatte, obwohl sie umbenannt oder gar gelöscht wurde.
Logisch.

Programme schreiben nicht direkt in eine Datei, sondern bekommen einen Dateideskriptor vom OS. Dazu wird beim öffnen der Datei der I-Node ausgelesen.
Änderungen am I-Node (rename, delete, move) ändern den Deskriptor nicht mit. D.h. die Änderungen werden für das Programm erst beim schliessen der Datei wirksam.
Und LOG-Dateien werden eher selten geschlossen. Das muss man dem jeweiligen Programm mitteilen.

RomanX
 
ps2. ist das der nette Proxy mit dem Du letzthin die Anmeldeprobleme hattest? Haben den damals nicht Andere administriert?

Genau, die Sache mit dem Sophosproxy und dem Syslog Server. Liegt beides in meiner Verantwortung. Mittlerweile hab ich mir für den Syslog Server am Proxy ein Profil angelegt weil ich es nicht geschaft habe, den Ubuntuserver auf welchem der Syslog Server läuft den Proxy mit der Domain Authentication so einzutragen, dass das auch funktioniert.

Mit dem Profil passts jetzt, ich werde das andere Thema gleich mal bearbeiten und auf gelöst setzen.

Grüße, Audrey
 
Eines wurde noch nicht erwähnt:
Ein einfacher "mv"-Befehl muss nicht immer von Erfolg gekrönt sein. Ich habe auch schon Fälle erlebt, in denen der Prozess, der die Logdatei füllt, brav in diese Log-Datei weiter geschrieben hatte, obwohl sie umbenannt oder gar gelöscht wurde.

Das ist IMHO eine Stärke von *nix.

Das "Geht gerade nicht. Irgend jemand hängt an der Datei. Komm wieder wenn du den abgeschossen hast." von Windows fand ich zumindest als langjähriger *nix Nutzer wenig hilfreich.
 
Soooo, wird hoffentlich klappen, hier mal ein Screenshot vom debug output
debugLogrotateSophosOutput.PNG

So sieht das Script aus
scriptLogrotateSophosSyslog.PNG

Ich werd das Script jetzt nochmal bis morgen auf daily setzen, damit ich auch sicher sein kann, dass es funktioniert und gebe dann nochmal bescheid!

Danke vorerst!

Grüße, Audrey
 
Ich nehme mal an, daß Sophos nicht über den syslog-ng sondern direkt loggt. Daher wirst Du den postrotate-Abschnitt noch ändern müssen, indem Du dort den Sophos-Dienst durchstartest. Dann legt er hoffentlich das Log neu an.
 
Es sind getrennte Systeme. Sophos läuft als Virtual Appliance auf einem VMware Cluster und der Ubuntuserver läuft auf ner Z400 Workstation, ebenfalls ESXi, mit Syslog. Die 3 Sophos Webappliances sind so konfiguriert, dass sie in den Ubuntu Syslog schreiben.
Beides führt zum Erfolg.
Entweder ich starte die Sophos Appliances durch, was in der Produktivzeit allerdings gar nicht so lustig wäre, oder ich starte den Syslog Dienst neu nach dem das Log weggesichert wurde, was gerade mal 2 Sekunden dauert und ganz gut funktioniert.
 
Wenn remote ge-syslog-t wird, dann ist meine Anmerkung natürlich gegenstandslos :D.
 
Na grundsätzlich würde es schon funktionieren, aber es wäre wohl nicht angemessen 3 Proxy Appliances durchzustarten :facepalm:

Grüße, Audrey
 
So wie Du deine Anordnung beschrieben hast, werden die Logfiles vom syslogd auf dem Ubuntu-Server geschrieben bzw. offen gehalten. Da hilft es meiner Meinung nach nicht, die Appliances durchzustarten.
 
Ja stimmt, ist ja auch logisch wenn man von der richtigen Seite drauf schaut :D

Die Appliances haben ja nur die Info von der Syslog Server IP und Port, der Rest steht ja in der syslog-ng.conf
 
Kurze Rückmeldung. Das Logrotate Script funktioniert wunderbar.

SyslogLogrotate.PNG

Danke nochmals für die Hilfe.

Grüße, Audrey
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben