master/mariadb/etc/logrotate.d/mariadb

87 lines
3.6 KiB
Plaintext

# ****************************************************************************************************
# * ______ _ _ *
# * | ____| /\ (_) | | *
# * | |__ _ _ _ __ ___ _ __ ___ __ _ _ __ / \ _ _ __ _ __ ___ _ __| |_ ___ *
# * | __|| | | | '__/ _ \| '_ \ / _ \/ _` | '_ \ / /\ \ | | '__| '_ \ / _ \| '__| __/ __| *
# * | |___| |_| | | | (_) | |_) | __/ (_| | | | | / ____ \| | | | |_) | (_) | | | |_\__ \ *
# * |______\__,_|_| \___/| .__/ \___|\__,_|_| |_| /_/ \_\_|_| | .__/ \___/|_| \__|___/ *
# * | | | | *
# * |_| |_| *
# * *
# ****************************************************************************************************
# This file is part of the European Airports Project, a free, collaborative platform of airport data
# extending beyond the official AIPs.
# Copyright (C) 2023
# Florian Meissner <florianmeissner@gmx.de>
# This program is free software: you can redistribute it and/or modify it under the
# terms of the GNU General Public License as published by the Free Software Foundation, either
# version 3 of the License, or (at your option) any later version. This program is distributed in the
# hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
# details. You should have received a copy of the GNU General Public License along with this program.
# (license.md in the root folder of this project) If not, see <http://www.gnu.org/licenses/>.
# This is the MariaDB configuration for the logrotate utility
#
# Note that on most Linux systems logs are written to journald, which has its
# own rotation scheme.
#
# Read https://mariadb.com/kb/en/error-log/ to learn more about logging and
# https://mariadb.com/kb/en/rotating-logs-on-unix-and-linux/ about rotating logs.
/var/log/mysql/*.log {
# If any of the files listed above is missing, skip them silently without
# emitting any errors
missingok
# If file exists but is empty, don't rotate it
notifempty
# Run daily
daily
# Keep 14 days of logs
rotate 14
# Compress logs, as they are text and compression will save a lot of disk space
compress
# Don't compress the log immediately to avoid errors about "file size changed while zipping"
delaycompress
# Don't run the postrotate script for each file configured in this file, but
# run it only once if one or more files were rotated
sharedscripts
# Immediately create new logfile
create 640 mysql adm
# After each rotation, run this custom script to flush the logs. Note that
# this assumes that the mariadb-admin command has database access, which it
# has thanks to the default use of Unix socket authentication for the 'root'
# account used everywhere since MariaDB 10.4.
postrotate
if test -r /run/secrets/root_name
then
user=`/usr/bin/cat /run/secrets/root_name`
user="-u $user"
fi
if test -r /run/secrets/root_pw
then
pw=`/usr/bin/cat /run/secrets/root_pw`
pw="-p$pw"
fi
if test -x /usr/bin/mariadb-admin
then
/usr/bin/mariadb-admin --local $user $pw flush-logs
fi
endscript
}