logrotate und /dev/null

02/05/2012 - 20:27 von Cyrus Kriticos | Report spam
Hallo,

was macht logrotate wenn er auf eine Datei stößt die vorübergehend als
Behelfslösung nur ein symbolischer Link nach /dev/null ist?


Grüße | NDR-Beitrag ueber MCR Geldschrank Vertriebsgesellschaft Berlin
Cyrus | http://www.lachschon.de/item/64671-...lechmafia/
 

Lesen sie die antworten

#1 Christoph Mehdorn Weber
03/05/2012 - 13:53 | Warnen spam
Hallo!

* Cyrus Kriticos :

was macht logrotate wenn er auf eine Datei stößt die vorübergehend als
Behelfslösung nur ein symbolischer Link nach /dev/null ist?



Gute Frage. Vermutlich findet man dazu nichts in der Doku, daher
habe ich es kurz ausprobiert:

.--[ /tmp/logrotate.conf ]--
| /tmp/test.log {
| daily
| rotate 2
| missingok
| #notifempty
| }

Und Start:
| $ logrotate -s /tmp/logrotate.status -v /tmp/logrotate.conf
| reading config file /tmp/logrotate.conf
| reading config info for /tmp/test.log
|
| Handling 1 logs
|
| rotating pattern: /tmp/test.log after 1 days (2 rotations)
| empty log files are rotated, old logs are removed
| considering log /tmp/test.log
| log needs rotating
| rotating log /tmp/test.log, log->rotateCount is 2
| dateext suffix '-20120503'
| glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
| renaming /tmp/test.log.2 to /tmp/test.log.3 (rotatecount 2, logstart 1, i 2),
| old log /tmp/test.log.2 does not exist
| renaming /tmp/test.log.1 to /tmp/test.log.2 (rotatecount 2, logstart 1, i 1),
| old log /tmp/test.log.1 does not exist
| renaming /tmp/test.log.0 to /tmp/test.log.1 (rotatecount 2, logstart 1, i 0),
| old log /tmp/test.log.0 does not exist
| log /tmp/test.log.3 doesn't exist -- won't try to dispose of it
| renaming /tmp/test.log to /tmp/test.log.1

Und danach heißt sie anders. Wenn man hingegen das oben
auskommentierte "notifempty" aktiv làßt, rotiert er nicht --
offenbar macht ein stat() und bekommt bei /dev/null die Größe
0 zurück.

strace deutet darauf hin:
| stat64("/tmp/test.log", {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 3), ...}) = 0

(laut "man 2 stat" löst stat, im Gegensatz zu lstat, symbolische
Links auf; die -64-Version verhalten sich analog)


Fazit: Das Logrotate-Verhalten bei Links nach /dev/null ist
konfigurierbar.

Christoph

John Lennon of Borg: Imagine there's no assimilation ...

Ähnliche fragen