ホームページ データベース mysql チュートリアル [Linux] 利用logrotate对MySQL日志进行轮转_MySQL

[Linux] 利用logrotate对MySQL日志进行轮转_MySQL

Jun 01, 2016 pm 01:28 PM
linux

bitsCN.com

[Linux] 利用logrotate对MySQL日志进行轮转

 

日志轮转特别适用于具有固定文件名的日志文件,比如MySQL的出错日志、常规查询日志、慢查询日志等。Linux系统有一个非常好用的根据logratate可以实现自动轮转,本文介绍它的原理和用法。

默认情况下,logratate部署为每天运行的cron job,你可以在目录/etc/cron.daily里找到名为logratate的配置文件。那么它是在每天的上面时候运行的呢?打开文件/etc/crontab就知道了,下面是我机器上的情况:

[plain] 

SHELL=/bin/bash  

PATH=/sbin:/bin:/usr/sbin:/usr/bin  

MAILTO=root  

HOME=/  

  

# run-parts  

01 * * * * root run-parts /etc/cron.hourly  

02 4 * * * root run-parts /etc/cron.daily  

22 4 * * 0 root run-parts /etc/cron.weekly  

42 4 1 * * root run-parts /etc/cron.monthly  

从上面的配置我们可以知道,/etc/cron.daily是在每天凌晨4:02执行。也就是说,每天4:02分/etc/cron.daily/logratate将会自动执行,下面是它的内容:

[plain] 

#!/bin/sh  

  

/usr/sbin/logrotate /etc/logrotate.conf  

EXITVALUE=$?  

if [ $EXITVALUE != 0 ]; then  

    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"  

fi  

exit 0  

从上面我们可以知道,logratate默认的配置文件是/etc/logratate.conf,下面是它的内容:

[plain] 

EXITVALUE=$?  

if [ $EXITVALUE != 0 ]; then  

    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"  

fi  

exit 0  

[root@lx202 /etc/cron.daily ]# cat /etc/logrotate.conf  

# see "man logrotate" for details  

# rotate log files weekly  

weekly  

  

# keep 4 weeks worth of backlogs  

rotate 4  

  

# create new (empty) log files after rotating old ones  

create  

  

# uncomment this if you want your log files compressed  

#compress  

  

# RPM packages drop log rotation information into this directory  

include /etc/logrotate.d  

  

# no packages own wtmp -- we'll rotate them here  

/var/log/wtmp {  

    monthly  

    minsize 1M  

    create 0664 root utmp  

    rotate 1  

}  

  

/var/log/btmp {  

    missingok  

    monthly  

    minsize 1M  

    create 0600 root utmp  

    rotate 1  

}  

从上面我们可以知道,这个默认的配置文件将读取目录/etc/logrotate.d,所以我们只要把自己写的配置文件放到该目录下即可。

MySQL本省提供了一个rotate的参考配置文件,在support-files目录下,文件名为mysql-log-rotate,内容如下:

[plain] 

# This logname can be set in /etc/my.cnf  

# by setting the variable "err-log"  

# in the [safe_mysqld] section as follows:  

#  

# [safe_mysqld]  

# err-log=/opt/mysql/data/mysqld.log  

#  

# If the root user has a password you have to create a  

# /root/.my.cnf configuration file with the following  

# content:  

#  

# [mysqladmin]  

# password =  

# user= root  

#  

# where "" is the password.  

#  

# ATTENTION: This /root/.my.cnf should be readable ONLY  

# for root !  

  

/opt/mysql/data/mysqld.log {  

        # create 600 mysql mysql  

        notifempty  

        daily  

        rotate 3  

        missingok  

        compress  

    postrotate  

        # just if mysqld is really running  

        if test -x /opt/mysql/bin/mysqladmin && /  

           /opt/mysql/bin/mysqladmin ping &>/dev/null  

        then  

           /opt/mysql/bin/mysqladmin flush-logs  

        fi  

    endscript  

}  

logrotate常见选项:

选项 含义

compress 压缩日志文件的所有非当前版本

copy 复制当前的日志文件,忽略create参数

copytruncate 复制当前的日志文件,并置空当前文件

daily 每天轮日志文件i

dateext 轮换的日志后缀为-YYYYMMDD格式

delaycompress 压缩除了当前和最近之外的所有其他版本

missingok 如果日志不存在,不会报错

notifempty 如果日志为空,则不轮换

rotate n 在轮换方案中包含n个版本的日志

size=logsize 如果日志文件大于logsize才轮换

我们只要根据自己的需要,修改相应配置即可,下面是一个例子:

1)创建MySQL root密码文件

vi /root/.my.cnf

[plain] 

[mysqladmin]  

password = ***  

user= root  

chmod 600 /root/.my.cnf

2)把mysql-log-rotate拷贝至/etc/logrotate.d目录下,修改其内容为:

[plain] 

/data/mysql/log/slow.log  

/data/mysql/log/alert.log {  

        create 600 mysql mysql  

        notifempty  

        daily  

        rotate 7  

        missingok  

        # compress  

    postrotate  

        # just if mysqld is really running  

        if test -x /opt/mysql/bin/mysqladmin && /  

           /opt/mysql/bin/mysqladmin ping &>/dev/null  

        then  

           /opt/mysql/bin/mysqladmin flush-logs  

        fi  

    endscript  

}  

3)执行以下命令测试

[plain] 

/usr/sbin/logrotate -f /etc/logrotate.d/mysql-log-rotate  

 

bitsCN.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Deepseek Webバージョンの入り口Deepseek公式ウェブサイトの入り口 Deepseek Webバージョンの入り口Deepseek公式ウェブサイトの入り口 Feb 19, 2025 pm 04:54 PM

DeepSeekは、Webバージョンと公式Webサイトの2つのアクセス方法を提供する強力なインテリジェント検索および分析ツールです。 Webバージョンは便利で効率的であり、公式ウェブサイトは包括的な製品情報、ダウンロードリソース、サポートサービスを提供できます。個人であろうと企業ユーザーであろうと、DeepSeekを通じて大規模なデータを簡単に取得および分析して、仕事の効率を向上させ、意思決定を支援し、イノベーションを促進することができます。

DeepSeekをインストールする方法 DeepSeekをインストールする方法 Feb 19, 2025 pm 05:48 PM

DeepSeekをインストールするには、Dockerコンテナ(最も便利な場合は、互換性について心配する必要はありません)を使用して、事前コンパイルパッケージ(Windowsユーザー向け)を使用してソースからコンパイル(経験豊富な開発者向け)を含む多くの方法があります。公式文書は慎重に文書化され、不必要なトラブルを避けるために完全に準備します。

OUYI OKXインストールパッケージが直接含まれています OUYI OKXインストールパッケージが直接含まれています Feb 21, 2025 pm 08:00 PM

世界をリードするデジタル資産交換であるOuyi Okxは、安全で便利な取引体験を提供するために、公式のインストールパッケージを開始しました。 OUYIのOKXインストールパッケージは、ブラウザに直接インストールでき、ユーザー向けの安定した効率的な取引プラットフォームを作成できます。インストールプロセスは、簡単で理解しやすいです。

gate.ioインストールパッケージを無料で入手してください gate.ioインストールパッケージを無料で入手してください Feb 21, 2025 pm 08:21 PM

Gate.ioは、インストールパッケージをダウンロードしてデバイスにインストールすることで使用できる人気のある暗号通貨交換です。インストールパッケージを取得する手順は次のとおりです。Gate.ioの公式Webサイトにアクセスし、「ダウンロード」をクリックし、対応するオペレーティングシステム(Windows、Mac、またはLinux)を選択し、インストールパッケージをコンピューターにダウンロードします。スムーズなインストールを確保するために、インストール中に一時的にウイルス対策ソフトウェアまたはファイアウォールを一時的に無効にすることをお勧めします。完了後、ユーザーはGATE.IOアカウントを作成して使用を開始する必要があります。

Bitget公式ウェブサイトのインストール(2025初心者ガイド) Bitget公式ウェブサイトのインストール(2025初心者ガイド) Feb 21, 2025 pm 08:42 PM

Bitgetは、スポット取引、契約取引、デリバティブなど、さまざまな取引サービスを提供する暗号通貨交換です。 2018年に設立されたこのExchangeは、シンガポールに本社を置き、安全で信頼性の高い取引プラットフォームをユーザーに提供することに取り組んでいます。 Bitgetは、BTC/USDT、ETH/USDT、XRP/USDTなど、さまざまな取引ペアを提供しています。さらに、この取引所はセキュリティと流動性について評判があり、プレミアム注文タイプ、レバレッジド取引、24時間年中無休のカスタマーサポートなど、さまざまな機能を提供します。

LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? LinuxターミナルでPythonバージョンを表示するときに発生する権限の問題を解決する方法は? Apr 01, 2025 pm 05:09 PM

LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

OUYI Exchangeダウンロード公式ポータル OUYI Exchangeダウンロード公式ポータル Feb 21, 2025 pm 07:51 PM

OKXとしても知られるOUYIは、世界をリードする暗号通貨取引プラットフォームです。この記事では、OUYIの公式インストールパッケージのダウンロードポータルを提供します。これにより、ユーザーはさまざまなデバイスにOUYIクライアントをインストールすることが容易になります。このインストールパッケージは、Windows、Mac、Android、およびiOSシステムをサポートします。インストールが完了した後、ユーザーはOUYIアカウントに登録またはログインし、暗号通貨の取引を開始し、プラットフォームが提供するその他のサービスを楽しむことができます。

システムの再起動後にUnixSocketの権限を自動的に設定する方法は? システムの再起動後にUnixSocketの権限を自動的に設定する方法は? Mar 31, 2025 pm 11:54 PM

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

See all articles