====== ログローテーションの設定 ====== ===== 環境 ===== # OS cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) # MySQL mysql --version mysql Ver 8.0.12 for Linux on x86_64 (MySQL Community Server - GPL) # ログディレクトリ sudo ls -l /var/log/ ===== MySQL 8.0 ===== # MySQLのログディレクトリ sudo ls -l /var/log/mysql # ローテーション設定ファイルの確認 sudoedit /etc/logrotate.conf # 個別設定ファイル sudo ls -l /etc/logrotate.d # MySQLローテーション設定の確認 sudo cat /etc/logrotate.d/mysql # パスワードファイルの作成 sudo mysql_config_editor set --login-path=client --user=root --host=localhost --password # パスワードファイル(.mylogin.cnf)の確認 sudo ls -la /root sudo mysql_config_editor print --all # MySQLのローテーション設定 sudoedit /etc/logrotate.d/mysql /var/log/mysql/mysqld.log /var/log/mysql/slow_query.log { create 644 mysql mysql notifempty daily rotate 14 missingok dateext sharedscripts postrotate # just if mysqld is really running if test -x /usr/bin/mysqladmin && \ /usr/bin/mysqladmin ping &>/dev/null then /usr/bin/mysqladmin flush-logs fi endscript } # 確認 sudo logrotate -dv /etc/logrotate.d/mysql # 強制的に実行 sudo logrotate -fv /etc/logrotate.d/mysql # ローテーションされたか確認 sudo ls -l /var/log/mysql ===== PHP ===== # PHPのログディレクトリ sudo ls -l /var/log/php # PHPのローテーション設定 sudoedit /etc/logrotate.d/php /var/log/php/error.log { notifempty daily missingok dateext rotate 14 copytruncate } # 確認 sudo logrotate -dv /etc/logrotate.d/php # 強制的に実行 sudo logrotate -fv /etc/logrotate.d/php # ローテーションされたか確認 sudo ls -l /var/log/php