Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Was fehlt?

Es liegt in der Natur der Sache: Ein Wiki ist niemals fertig. Wir geben uns große Mühe, mit der Entwicklung Schritt zu halten; lassen Supportanfragen direkt in neue Artikel einfließen … aber auch wir sind nicht perfekt. Wenn du hier nicht fündig wirst: Nicht schmollen - Bescheid sagen! Unter hallo@uberspace.de steht dir unser Team gerne bereit. Hand drauf!

system:logrotate
Alle Anleitungen in diesem Wiki beziehen sich auf Uberspace 6. Die Dokumentation für U7 findest du im neuen Manual. Im Lab findest du außerdem von Usern erstellte Anleitungen für verschiedene Projekte.

logrotate

Bei uns wird in jedem neuen Account eine Config für Logrotate angelegt: ~/etc/logrotate.conf. Diese Datei kannst Du aber nicht editieren, da die logrotate-Instanz die diese Datei verarbeitet mit root-Rechten läuft – das wäre sonst eine Sicherheitslücke.

Wenn Du nun Logs rotieren willst, könntest Du natürlich uns bitten, die ~/etc/logrotate.conf für Dich anzupassen. Dabei könnten wir dann prüfen ob das was Du da tun willst in Ordnung ist und es dann natürlich zulassen. Das ist aber für Dich und uns umständlich und bringt Einschränkungen mit sich, wir könnten z.B. entweder für Dich keine Skripte einbinden, die Logrotate im Rahmen der Logrotation ausführen soll oder wir müssten diese Skripte ebenfalls für Dich unveränderlich machen, damit wir hier keine Hintertür erschaffen.

Nun wollen wir Dir aber so viel Freiheiten und Kontrolle lassen wie möglich, daher empfehlen wir statt dessen, dass Du Dein eigenes logrotate betreibst, das dann komplett mit Deinen Userrechten läuft und völlig unabhängig ist von unserem. Dazu kannst Du Dir einfach eine eigene Logrotate-Config anlegen und Dein eigenes Logrotate unter cron oder runwhen betreiben.

eignes Logrotate unter runwhen

Mit den folgenden Befehlen kannst Du Dir eine eigene Logrotate-Instanz einrichten. Voraussetzung dafür ist, dass du Dein persönliches ~/service-Verzeichnis aktiviert hast:

test -d ~/service || uberspace-setup-svscan

Dann leg Dir am besten erstmal eine Konfigurationsdatei an, z.B. als ~/etc/my-logrotate.conf. Als Vorlagen kannst Du Dich dabei an /etc/logrotate.conf oder auch an ~/etc/my-logrotate.conf orientieren, bedenke aber dass Du keine der darin aufgeführten Dateien mit Deinen Userrechten selbst rotieren kannst. (Eine weitere nützliche Hilfe ist die Manpage, die Du mit man logrotate.conf aufrufen kannst.) Ein eigenes Logrotate ist für das Rotieren anderer Logs gedacht.

Dann bereite eine runwhen-Config für den Dienst vor:

runwhen-conf ~/etc/run-logrotate /bin/nice -n 19 ionice -c3 /usr/sbin/logrotate -s ~/etc/run-logrotate/logrotate.status ~/etc/my-logrotate.conf
Aufgepasst: ionice -c3 funktioniert unter CentOS 5 noch nicht, da musst Du das entweder weglassen oder ionice -c2 -n7 nehmen.

Wenn das ganze einmal täglich zu einer zufällig ausgewählten Stunde laufen soll:

sed -i -e "s/^RUNWHEN=.*/RUNWHEN=\",H=`awk 'BEGIN { srand(); printf("%d\n",rand()*24) }'`\"/" ~/etc/run-logrotate/run

Oder Du kannst dir das ganze natürlich auch auf eine Zeit Deiner Wahl stellen, hier mal als Beispiel 13 Uhr:

sed -i -e "s/^RUNWHEN=.*/RUNWHEN=\",H=13\"/" ~/etc/run-logrotate/run

Natürlich kannst du die ~/etc/run-logrotate/run-Datei auch einfach per Hand editieren, unser runwhen-Wikieintrag hilft bei Fragen weiter.

Abschließend dann noch der Symlink ins ~/service-Verzeichnis:

ln -s ~/etc/run-logrotate ~/service/logrotate
system/logrotate.txt · Zuletzt geändert: 2017/12/11 12:43 von uber