PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Logrotate funktioniert nicht



pibi
10.11.18, 14:22
Hallo zusammen

Mein Server: openSuSI 13.2 (wird ersetzt durch eine neue Hardware unter openSuSI 42.3, ist schon fast fertig aufgebaut).

Heute hat mir mein Nagios/Icinga gemeldet, dass das Volume /var auf meinem Server einen kritischen Fuellstand erreicht hat. Und wirklich, es waren nur noch wenige Prozent freier Speicherplatz vorhanden. Dabei ist mir aufgefallen, dass anscheinend schon seit laengerem kein "logrotate" mehr stattgefunden hat.

Angeblich soll "logrotate" durch einen Cronjob angekickt werden. Ich habe aber weder unter den System-Jobs (/etc/cron.*) noch unter den personalisierten Jobs (/var/spool/cron/tabs) einen entsprechenden Eintrag gefunden. Lustigerweise sind aber die TimeStamps der Files unter /var/spool/cron/lastrun halbwegs aktuell, so dass irgendetwas passiert sein muss. Hmmm?!

Anyway: Ich habe daraufhin das Logrotate auf der Kommandozeile manuell angestossen mit
logrotate /etc/logrotate.confDieser Job ist dann geschaetzte 20min. gelaufen und hat den Platz bereinigt und die Logfiles komprimiert, so wie es sein sollte.

Wie bzw. wo wird denn der Logrotate angekickt? Auch auf meinen anderen Rechnern, auf denen es funktioniert, finde ich keinen Cronjob oder aehnliches.

Gruss Pit.

Sauerland1
10.11.18, 18:44
https://forums.opensuse.org/showthread.php/503896-What-runs-logrotate-in-OpenSUSE-13-2

pibi
11.11.18, 14:42
Hoi Sauerland1

Vielen Dank fuer den Link. Leider komme ich damit auch nicht wirklich weiter:-(

zu #3 aus dem Link:
/usr/lib/systemd/system/logrotate.service gibt es bei mir und hat folgenden Inhalt:

[Unit]
Description=Rotate log files
Documentation=man:logrotate(8) man:logrotate.conf(5)
ConditionACPower=true
[Service]
Type=oneshot
ExecStart=/usr/sbin/logrotate /etc/logrotate.conf
Nice=19
IOSchedulingClass=best-effort
IOSchedulingPriority=7
Wenn ich "/usr/sbin/logrotate /etc/logrotate.conf" manuell starte, wird das Logrotate richtig ausgefuehrt. Aber das schrub ich bereits in #1.

Ein "systemctl status logrotate.service" zeigt mir dass der Status "dead" ist. Ein "systemctl start logrotate.service" fuehrt ebenfalls das Logrotate aus. Ein "systemctl enable logrotate.service" bringt folgendes:


The unit files have no [Install] section. They are not meant to be enabled
using systemctl.
Possible reasons for having this kind of units are:
1) A unit may be statically enabled by being symlinked from another unit's
.wants/ or .requires/ directory.
2) A unit's purpose may be to act as a helper for some other unit which has
a requirement dependency on it.
3) A unit may be started when needed via activation (socket, path, timer,
D-Bus, udev, scripted systemctl call, ...).

zu #3 aus dem Link:
Das File "/var/lib/logrotate.status" zeigt alle Namen der Logfiles und wann sie zuletzt von Logrotate komprimiert wurden. Leider nutzt mir das nicht viel, sondern ist rein informativ.

zu #9:
Das Ergebnis von "systemctl list-timers --all" gibt aus:

NEXT LEFT UNIT ACTIVATES
Mon 2018-11-12 11:44:46 CET 21h left systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
n/a n/a systemd-readahead-done.timer systemd-readahead-done.service

2 timers listed.

zu #10:
Die Maschine, um die es hier geht, ist (m)ein Server im Keller. Und wie der Name impliziert, laeuft diese Kiste 24/7.

Aus alledem schliesse ich, dass irgendetwas bei meinem Server nicht mehr richtig funktioniert. "Frueher" (das letzte Logfile mit Extension "xz" datiert vom Sommer 2017) lief es definitiv noch. Anyway: Da diese Kiste sowieso ersetzt wird, baue ich als work-around das Logrotate als Cronjob ein.

Und uebrigens: Auch der neue Server, der momentan als Stand-by laeuft, hat ebenfalls keinerlei Cronjob-Eintraege. Er funktioniert, aber anscheinend ebenso mit irgenwelchen kruden Mechanismen. Hier sieht es mit dem Timer allerdings besser aus:

NEXT LEFT LAST PASSED UNIT ACTIVATES
Sun 2018-11-11 21:17:15 CET 6h left Sat 2018-11-10 21:17:15 CET 17h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Mon 2018-11-12 00:00:00 CET 9h left Mon 2018-11-05 00:00:00 CET 6 days ago fstrim.timer fstrim.service
Mon 2018-11-12 00:00:00 CET 9h left Sun 2018-11-11 00:00:00 CET 14h ago logrotate.timer logrotate.service

3 timers listed.
Pass --all to see loaded but inactive timers, too.


Besten Dank fuer Deine Hilfe und Gruss aus Winti
Pit.

Sauerland1
11.11.18, 18:57
Als root:

zypper in -f logrotate

pibi
13.11.18, 12:40
Hoi Sauerland1


server:~ # zypper install --force logrotate
Loading repository data...
Warning: Repository 'openSuSE-13.2-Update' appears to be outdated. Consider using a different mirror or server.
Reading installed packages...
Forcing installation of 'logrotate-3.8.7-6.1.2.x86_64' from repository 'openSUSE-13.2-oss'.
Resolving package dependencies...

The following package is going to be reinstalled:
logrotate

1 package to reinstall.
Overall download size: 58.6 KiB. Already cached: 0 B No additional space will be used or freed after the operation.
Continue? [y/n/? shows all options] (y): y
Retrieving package logrotate-3.8.7-6.1.2.x86_64 (1/1), 58.6 KiB ( 99.6 KiB unpacked)
Checking for file conflicts: .................................................. .................................................. .....[done]
(1/1) Installing: logrotate-3.8.7-6.1.2 .................................................. ............................................[done]
server:~ # systemctl list-timers --all
NEXT LEFT UNIT ACTIVATES
Wed 2018-11-14 11:45:01 CET 23h left systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
n/a n/a systemd-readahead-done.timer systemd-readahead-done.service

2 timers listed.
server:~ #
Ist immer gut, wenn man fuer alle produktiven OS-Versionen einen local Mirror zur Verfuegung hat;-))

Wie ich bereits schrub, werde ich die pragmatische Loesung waehlen und "logrotate" als Cronjob definieren. Danke fuer Deine Hilfe.

Gruss Pit.

Sauerland1
13.11.18, 16:29
Und so etwas kommt dabei herum, wenn man abgelaufenen Distributionen benutzt und nicht nachhilft:

Warning: Repository 'openSuSE-13.2-Update' appears to be outdated. Consider using a different mirror or server.

pibi
13.11.18, 18:59
Jaja, das weiss ich doch alles. Und ich habe es voller Absicht so gemacht.

So, und jetzt Schluss mit dieser Diskussion betreffend Nicht-Updates.

Ich wuensche Dir einen schoenen Abend.
Pit.