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 hänvisar till slm ”svar för att få en exakt cron.daily förklaring logrotate
-raden i kommandot crontab -l
och kör kommandoraden
Kommentarer
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
logrotate
planerad att köras en gång om dagen.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.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