Jeg fulgte dette link for at ændre log -rotatkonfiguration til RHEL 6
Når jeg har foretaget ændringen til konfigurationsfil, hvad skal jeg gøre for at lade dette træde i kraft?
Svar
logrotate
bruger crontab
til at arbejde. Det er planlagt arbejde, ikke en dæmon, så det er ikke nødvendigt at genindlæse konfigurationen.
Når crontab
udfører logrotate
, bruger din nye konfigurationsfil automatisk.
Hvis du har brug for at teste din konfiguration, kan du også udføre logrotate
alene med kommandoen:
logrotate /etc/logrotate.d/your-logrotate-config
Eller som nævnt i kommentarer, identificer henvis til slm “s svar for at få en præcis cron.daily forklaring logrotate
linjen i output af kommandoen crontab -l
og udfør kommandolinjen
Kommentarer
Svar
Det meste af logrotate
opsætninger, jeg har set på forskellige distroer, løber tør for /etc/cron.daily
. Der er et shell-script der med passende navn logrotate
.
Eksempel
$ ls -l /etc/cron.daily/logrotate -rwxr-xr-x 1 root root 180 May 18 2011 /etc/cron.daily/logrotate
Manuel kørsel
Hvis du vil få det til at køre manuelt, skal du blot køre scriptet som root:
$ sudo /etc/cron.daily/logrotate
Hvis du ser på et script, der typisk er der, viser det dig, hvordan du også kan køre logrotate
manuelt ved blot at køre logrotate
+ stien til konfigurationsfilen.
#!/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 skal ske automatisk via cron. Du kan tvinge det til at teste dine ændringer.
For global logrotate:
sudo logrotate -v -f /etc/logrotate.conf
For en enkelt conf-fil:
sudo logrotate -v -f /etc/logrotate.d/someapp.conf
Kommentarer
-
-f
for kraftrotation er der også-d
til debug, hvilket også er tørkørsel, det vil udskrive alt, hvad det ville have gjort, men ikke rent faktisk gøre det.
Svar
På min CentOS 6.5-maskine til opsætning af logrotatefor nginx var jeg nødt til at gøre dette:
logrotate /etc/logrotate.d/nginx
Og så kontrollerede jeg, om logrotate tog sig af min nye nginx-konfiguration som denne:
cat /var/lib/logrotate.status
logrotate
planlagt til at køre en gang om dagen.logrotate
har en-d
mulighed for testning (eller " debugging "), jeg ' d anbefaler at køre det mindst én gang med det.su root syslog
. Hvilket bringer logrotate til ophør, når det ikke tilføjes. For at afslutte folk ' s frustration, når de tilføjer direktivet og derefter kører (tvinge) logrotate, fortsætter det med at spytte ud "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 timer efter konfigurationsændringen, som om indstillingerne / processen er cache !? Hvis du sidder fast der, chgrp on / var / log to root, kør logrotate, chgrp tilbage til syslog. Det ryddes op ved næste kørsel