¿Es posible ejecutar una iteración de logrotate manualmente sin programarlo en algún intervalo?
¿Es posible ejecutar una iteración de logrotate manualmente sin programarlo en algún intervalo?
Respuestas:
Si: logrotate --force $CONFIG_FILE
--force
rotará el archivo (s) incluso si no cumplen con los criterios especificados, como tamaño, edad, etc.
logrotate --force /etc/logrotate.d/
(solo el nombre del directorio)
--force
forzará la rotación incluso si los archivos no cumplen con los criterios (edad, tamaño, etc.), pero tenga en cuenta que esta es la única forma de detectar problemas reales que logrotate -d
no surgirían (por ejemplo, un servidor se estaba quedando sin espacio debido a que logrotate no se ejecutó durante meses ... y gracias a --force
que descubrí que había File exists
errores. ¡
logrotate -d [your_config_file]
invoca el modo de depuración, ofreciéndole una descripción detallada de lo que sucedería, pero sin modificar los archivos de registro.
logrotate --force
y funciona bien.
Si desea forzar la ejecución de un único directorio específico o archivos de registro de daemon, generalmente puede encontrar la configuración /etc/logrotate.d
y funcionarán de manera independiente.
Tenga en cuenta que la configuración global especificada en /etc/logrotate.conf
no se aplicará, por lo que si hace esto, debe asegurarse de especificar todas las opciones que desee /etc/logrotate.d/[servicename]
específicamente en el archivo de configuración.
Puedes probarlo -d
para ver qué pasaría:
logrotate -df /etc/logrotate.d/nginx
Luego puede ejecutar (usando nginx como ejemplo):
logrotate -f /etc/logrotate.d/nginx
Y los registros nginx solo se rotarán.
logrotate -d /etc/logrotate.conf
se ejecutará a través de cualquier otro archivo conf incluido.
La forma de ejecutar todo logrotate es:
logrotate -f /etc/logrotate.conf
eso ejecutará el archivo logrotate primario, que también incluye las otras configuraciones de logrotate
Emita el siguiente comando, la forma de ejecutar logrotate especificado:
logrotate -vf /etc/logrotate.d/custom
Opciones:
-v: muestra el proceso
-f: ejecución forzada
personalizado: configuración de registro definida por el usuario
por ejemplo: mongodb-log
# mongodb-log rotate
/data/var/log/mongodb/mongod.log {
daily
dateext
rotate 30
copytruncate
missingok
}
edite /var/lib/logrotate.status para restablecer la fecha de 'última rotación' en el archivo de registro que desea probar.
Entonces corre logrotate YOUR_CONFIG_FILE
.
O puede usar la bandera --force, pero editar logrotate.status le brinda más precisión sobre lo que se rota y lo que no.
/var/lib/logrotate.status
archivo no existe en Debian Squeeze.
Creó un script de shell para resolver el problema.
http://www.ict.griffith.edu.au/anthony/software/#logrotate_one
Este script ejecutará solo el archivo de subconfiguración de logrotate único que se encuentra en "/etc/logrotate.d", pero incluye la configuración global del archivo de configuración global "/etc/logrotate.conf". También puede usar otras opciones para probarlo ...
Por ejemplo...
logrotate_one -d syslog