Solución 1:
Sin un cambio en su proceso, logrotate por sí solo no hará lo que está buscando aquí. El problema clave aquí es que, si bien logrotate puede tomar comodines, no tratará los archivos como uno si lo hace y, en su lugar, intentará rotarlos todos individualmente, lo que definitivamente NO es lo que desea.
Sin embargo, puede hacer que funcione de la manera que describe, siempre que la copia de seguridad más reciente se cree sin un sello de fecha. Si su proceso de copia de seguridad crea /root/backup.tar.gz
por ejemplo, podría usar la siguiente configuración logrotate:
/root/backup.tar.gz {
rotate 5
nocompress
dateext
dateformat _%Y-%m-%d
extension .tar.gz
missingok
}
El resumen rápido de las opciones aquí:
rotate 5
-- mantener 5 rotaciones antes de eliminarnocompress
-- no comprima los archivos después de rotarlosdateext
-- use la fecha como la extensión de rotación en lugar de incrementar los númerosdateformat _%Y-%m-%d
-- establecer el formato de extensión de fecha que desea utilizarextension .tar.gz
-- hacer el.tar.gz
vienen después de la extensión de rotaciónmissingok
-- si el archivo que queremos rotar no está allí, no se preocupe y siga adelante (el valor predeterminado es arrojar un error)
¡Espero que esto ayude!
Solución 2:
No tienes que usar logrotate para hacerlo. Solo usa un comando como este:
ls -1 /root/backup_* | sort -r | tail -n +6 | xargs rm > /dev/null 2>&1
Este comando dejará los 5 archivos más recientes y eliminará los restantes (si los hay). Puede usarlo en un trabajo cron.
Solución 3:
Logrotate gira los archivos, por lo que la respuesta es sí, probablemente, y si no hay permisos suficientes, colóquelos en /backup o algo así. Compruebe qué grupo y usuario tienen los registros rotados :-).
Hay opciones para la compresión en logrotate, så si "comprimir" NO está configurado, bueno, entonces no lo intentará. También en tu caso, opción "girar 5".
Eche un vistazo en /etc/logrotate.d (o donde sea que esté almacenado en su sistema)