J'ai besoin de configurer logrotate pour faire pivoter les fichiers journaux à partir d'une application exécutée sur le serveur. J'ai besoin de la date à l'intérieur du nom de fichier.
J'ai mis dateext et également dateformat pour ajouter un - dans la date. Le nom du fichier résultat est: quel que soit.csv_2012-03-03
Je voudrais que l'horodatage fasse partie du nom de fichier en conservant l'extension; Quelle que soit_2012-03-03.csv.
Pour insérer la date dans le nom de fichier (et non comme extension) d'un fichier sous Linux lors de la rotation d'un fichier, il est correct d'utiliser:
# 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
}
C'est simple et ça marche bien.
Vous devriez pouvoir garder l'extension à part, par ex. whatever.2012-03-03.csv
, avec la configuration suivante:
whatever.csv {
dateext
dateformat .%Y-%m-%d
extension .csv
...
}
Notez que dateext
est délibérément vide.