linux - forzar - Cómo insertar una fecha dentro del nombre de archivo con logrotate
logrotate ubuntu (2)
Necesito configurar logrotate para rotar los archivos de registro de una aplicación que se ejecuta en el servidor. Necesito la fecha dentro del nombre de archivo.
Configuré dateext y también dateformat para agregar a - en la fecha. El nombre de archivo del resultado es: lo que sea.csv_2012-03-03
Me gustaría que la marca de tiempo sea parte del nombre de archivo manteniendo la extensión segura; Whatever_2012-03-03.csv.
Para insertar la fecha dentro del nombre de archivo (y no como extensión) de un archivo en Linux mientras rota un archivo, es correcto usar:
# Daily rotation
daily
# We keep original file live
copytruncate
# Rotation is 1 so we have always .1 as extension
rotate 1
# If file is missing keep working
missingok
sharedscripts
postrotate
day=$(date +%Y-%m-%d)
mv blabla.csv.1 /var/www/gamelogs/dir/blabla$day.csv
endscript
}
Esto es simple y funciona bien.
Debería poder mantener la extensión aparte, por ejemplo, whatever.2012-03-03.csv
, con la siguiente configuración:
whatever.csv {
dateext
dateformat .%Y-%m-%d
extension .csv
...
}
Tenga en cuenta que el dateext
está deliberadamente vacío.