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 solo si lo hace e intentará rotarlos 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 una marca de fecha. Si su proceso de copia de seguridad crea, /root/backup.tar.gz
por ejemplo, puede usar la siguiente configuración de 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
- Mantenga 5 rotaciones antes de eliminar
nocompress
- no comprima los archivos después de girar
dateext
- use la fecha como extensión de rotación en lugar de incrementar números
dateformat _%Y-%m-%d
- establece el formato de extensión de fecha que deseas usar
extension .tar.gz
- hacer .tar.gz
venir después de la extensión de rotación
missingok
- si el archivo que queremos rotar no está allí, no se preocupe y continúe (el valor predeterminado es lanzar un error)
¡Espero que esto ayude!
No tiene que usar logrotate para hacerlo. Solo usa un comando como este:
Este comando dejará los 5 archivos más recientes y eliminará los restantes (si los hay). Puedes usarlo en un trabajo cron.
fuente
Acabo de tener la misma situación. Logrotate suena bastante bien, pero no me funcionó al 100% porque no coincide con los datos y los nombres de los archivos.
Entonces, para evitar confusiones, decidí incorporar la siguiente línea para ejecutar después de crear mi copia de seguridad actual para mantener las últimas 5 copias de seguridad.
Mis registros son, es decir:
Nueva línea en mi script de respaldo (basado en un comentario anterior)
Saludos,
fuente
Puedes rotarlo manualmente.
Ahora para poner datos en el registro, solo haz
fuente