Toon posts:

[logrotate] Een directory 'recursive rotaten'?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste mensen,

Op mijn systeempje host ik een paar websites, en soms komt er eentje bij en af en toegaat er eentje weg. Ik wil (als dat even kan :P) niet telkens mijn logrotate configuratie aan moeten passen, en al die bestanden moeten toch op dezelfde manier gerotate worden, dus lijkt het me makkelijk om dat recursief te doen (dus opgeven /var/log/apache/*), maar ik kan nergens vinden (1) of dat kan en zo ja (2) hoe dat kan! Heeft iemand daar ervaring mee? Alvast bedankt!

  • Wilke
  • Registratie: December 2000
  • Laatst online: 10:24
Zoiets als:
code:
1
2
3
for name in `find /var/log/apache/ -type d`; do
  [roep logrotate script aan in die dir]
done


Werk dat?

Verwijderd

Topicstarter
Ehm... Ja, aan zo'n oplossing had ik nog niet gedacht, maar het is theoretisch inderdaad wel mogelijk! Maar het is (even voor de duidelijkheid) niet mogelijk om gewoon een config-file te maken in /etc/logrotate.d waarin ik een complete directory recursief definieer?

  • XTerm
  • Registratie: Juli 2001
  • Laatst online: 10-06-2025
Wilke schreef op 29 maart 2004 @ 13:43:
Zoiets als:
code:
1
2
3
for name in `find /var/log/apache/ -type d`; do
  [roep logrotate script aan in die dir]
done


Werk dat?
find heeft ook een exec flag :) en {} is je 'name' dan...

Verwijderd

Topicstarter
Ik heb eens zitten kijken, maar logrotate verwacht sowieso een configfile, en in die configfile moet expliciet vermeldt staan welke file er gerotated moet worden... Je kunt wel iets doen als
code:
1
2
3
4
5
6
/var/log/apache/* {
  monthly
  rotate 2
  missingok
  nocompress
}


Maar dat pakt alle files in /var/log/apache/, maar bijvoorbeeld geen files in /var/log/apache/www.sesamstraat.nl/... Dus dat zou betekenen dat ik on-the-fly een configfile moet genereren voor iedere directory? Of is daar een oplossing voor?

  • Coen Rosdorff
  • Registratie: Januari 2000
  • Niet online
Verwijderd schreef op 02 april 2004 @ 10:25:
code:
1
2
3
4
5
6
/var/log/apache/* {
  monthly
  rotate 2
  missingok
  nocompress
}
Hoooooo, dit is gevaarlijk.
als je een logfile foo en bar hebt, dan krijg je bij de eerste rotatie foo, foo.0, bar, bar.0 .
Na de volgende rotatie heb je foo, foo.0, foo.0.0, bar, bar.0, bar.0.0
Gaat een leuk boompje worden na verloop van tijd.
Iets als *.log gebruiken kan wel (je logfiles goede naam geven dus). Na de eerste rotatie heb je een foo.log.0. Bij de 2e rotatie blijft die dus mooi buiten schot, en wordt het foo.log.1.

Verwijderd

Topicstarter
Ja, sorry, dat was ik vergeten te vermelden, maar dat heb ik geregeld... Ik heb nu zelf een logrotate-script geschreven op basis van 'find /var/log/apache/ -type d' en dat werkt heel goed... Toch vreemd dat logrotate niet uit zichzelf 'recursief' kan werken

  • Grom
  • Registratie: Juli 2002
  • Laatst online: 25-11-2024

Grom

lief hè!

Verwijderd schreef op 03 april 2004 @ 10:08:
Ja, sorry, dat was ik vergeten te vermelden, maar dat heb ik geregeld... Ik heb nu zelf een logrotate-script geschreven op basis van 'find /var/log/apache/ -type d' en dat werkt heel goed... Toch vreemd dat logrotate niet uit zichzelf 'recursief' kan werken
Dit werkt volgens mij gewoon hoor (wildcards):

code:
1
2
3
4
5
6
7
8
/var/log/nl.*/*.log
{
    daily
    rotate 0
    compress
    missingok
    notifempty
}

Roteert alle *.log files in de dirs nl.*

edit = code tags toegevoegd

[ Voor 7% gewijzigd door Grom op 03-04-2004 19:56 ]

Pagina: 1