Jag följde den här länken för att ändra logg -rotera konfiguration för RHEL 6

När jag gjorde ändringen av konfigurationsfil, vad ska jag göra för att låta detta träda i kraft?

Svar

logrotate använder crontab för att arbeta. Det är schemalagt arbete, inte en demon, så du behöver inte ladda om konfigurationen.
När crontab kör logrotate, kommer att använda din nya konfigurationsfil automatiskt.
Om du behöver testa din konfiguration kan du också köra logrotate på egen hand med kommandot:

logrotate /etc/logrotate.d/your-logrotate-config 

Eller som nämnts i kommentarer, identifiera logrotate -raden i kommandot crontab -l och kör kommandoraden hänvisar till slm ”svar för att få en exakt cron.daily förklaring

Kommentarer

  • Bara för att lägga till ditt svar är cron-posten för logrotate planerad att köras en gång om dagen.
  • @Ketan, hur kan jag få det att påverka direkt? tack
  • Om du vill att det ska träda i kraft omedelbart kör cron efterord.
  • logrotate har en -d alternativ för testning (eller " felsökning "), jag ' d rekommenderar att du kör den minst en gång med det.
  • En mycket vanlig frustration är det nya, nödvändiga su-direktivet su root syslog. Vilket stoppar logrotate när det inte läggs till. För att förstöra människor ' s frustration, när de lägger till direktivet och sedan kör (tvingar) logrotate, fortsätter det att spotta ut " error: skipping "/var/log/syslog" because parent directory has insecure permissions (It's world writable or writable by group which is not "root" ... " i 20 timmar efter konfigurationsändringen, som om inställningarna / processen är cachade !? Om du har fastnat där, chgrp on / var / log to root, kör logrotate, chgrp tillbaka till syslog. Det kommer att rensas upp vid nästa körning

Svar

Det mesta av logrotate inställningar som jag har sett på olika distros går ut ur /etc/cron.daily. Det finns ett skalskript där med namnet logrotate.

Exempel

$ ls -l /etc/cron.daily/logrotate -rwxr-xr-x 1 root root 180 May 18 2011 /etc/cron.daily/logrotate 

Manuell körning

Om du vill få det att köra manuellt kör du bara skriptet som root:

$ sudo /etc/cron.daily/logrotate 

Om du tittar på ett skript som vanligtvis finns där, visar det dig hur du också kan köra logrotate manuellt genom att helt enkelt köra logrotate + sökvägen till dess konfigurationsfil.

#!/bin/sh /usr/sbin/logrotate /etc/logrotate.conf EXITVALUE=$? if [ $EXITVALUE != 0 ]; then /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]" fi exit 0 

Svar

Det ska vara automatiskt via cron. Du kan tvinga det att testa dina ändringar.

För global logrotate:

sudo logrotate -v -f /etc/logrotate.conf 

För en enda conf-fil:

sudo logrotate -v -f /etc/logrotate.d/someapp.conf 

Kommentarer

  • -f för kraftrotation finns det också -d för felsökning, vilket också är Dry run, det kommer att skriva ut allt det skulle ha gjort men inte göra det faktiskt.

Svar

På min CentOS 6.5-maskin för att ställa in logrotatefor nginx var jag tvungen att göra detta:

logrotate /etc/logrotate.d/nginx 

Och sedan kollade jag om logrotate tog hand om min nya nginx-konfiguration så här:

cat /var/lib/logrotate.status 

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *