ログローテーションで「ログファイルのファイル名に日付を付ける」場合、「daily」と「dateext」を利用すると日付形式に変更できます。
daily dateext
例:
daily missingok rotate 30 compress delaycompress notifempty create 0640 www-data adm sharedscripts dateext dateformat _%Y%m%d
上記の設定では「/var/log/example.log」のファイルが「/var/log/example.log_20250704.gz」になります。
【注意】
dateext
が有効になると、通常のlog.1
,log.2.gz
のような連番形式ではなくなります。dateformat
は省略可能で、指定しない場合はデフォルトで-%Y%m%d
の形式になります。dateext
はログファイル名の拡張として日付を付けるだけなので、「元ファイルの名前を日付入りでまったく別の名前に変える」といった用途にはスクリプトが必要です。
末尾以外にファイル名をつける
「access.log」 を 「access_20250704.log」などのように、ファイル名の末尾以外に日付を付ける場合はprerotate の箇所に処理を追加します
/var/log/myapp/access.log { daily missingok rotate 30 compress delaycompress notifempty create 0640 www-data adm sharedscripts prerotate mv /var/log/myapp/access.log /var/log/myapp/access_$(date +\%Y\%m\%d).log touch /var/log/myapp/access.log chown www-data:adm /var/log/myapp/access.log chmod 0640 /var/log/myapp/access.log endscript }