Ho aggiunto due script nella directory "logrotate.d" per i registri delle applicazioni da ruotare. Questa è la configurazione per uno di loro:logrotate cron job che non ruota determinati registri
<myLogFilePath> {
compress
copytruncate
delaycompress
dateext
missingok
notifempty
daily
rotate 30
}
C'è uno script "logrotate" nella directory "cron.daily" (che sembra essere in esecuzione quotidiana secondo i registri cron):
#!/bin/sh
echo "logrotate_test" >>/tmp/logrotate_test
#/usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1
/usr/sbin/logrotate -v /etc/logrotate.conf &>>/root/logrotate_error
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
La prima dichiarazione di eco sta funzionando.
ma trovo i miei registri delle applicazioni da soli non sono sempre ruotati, mentre altri registri come httpd sono sempre ruotati **
** E anche io non vedo alcun output nel file citato "logrotate_error" (ha il permesso di scrittura per tutti gli utenti).
Tuttavia lo syslog dice: "logrotate: ALERT uscito in modo anomalo con [1]"
Ma quando faccio funzionare lo stesso "logrotate" in "cron.daily" scritto a mano, tutto sembra funzionare bene.
Perché non sta ruotando durante la pianificazione cron giornaliera? Sto facendo qualcosa di sbagliato qui?
Sarebbe bello se ricevessi questo aiuto tanto necessario.
AGGIORNAMENTO: Sembra, è a causa di SELinux - i file di log nella mia home directory utente ha restrizioni imposte da SELinux e quando lo script logrotate viene eseguito:
SELinux is preventing /usr/sbin/logrotate from getattr access on the file /home/user/logs/application.log
casi in cui è presente preso da? Potresti per favore aggiungerlo? Ho cercato su Google questo e vedo molti messaggi simili a questo, ma non riesco a trovare la fonte. È questo il messaggio predefinito che SELinux fornisce? –