Linux中使用logrotate对MySQL日志进行轮转

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

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

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/logrotate将会自动执行,下面是它的内容:

#!/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,下面是它的内容:

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
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索日志
, root
, cron
, 轮转
, 轮转广告
rotate
logrotate 删除日志、logrotate 执行日志、logrotate 日志、logrotate切割日志、logrotate 运行日志,以便于您获取更多的相关知识。

时间: 2024-10-31 16:20:29

Linux中使用logrotate对MySQL日志进行轮转的相关文章

利用logrotate对MySQL日志进行轮转

  日志轮转特别适用于具有固定文件名的日志文件,比如MySQL的出错日志.常规查询日志.慢查询日志等.Linux系统有一个非常好用的根据logratate可以实现自动轮转,本文介绍它的原理和用法. 默认情况下,logrotate部署为每天运行的cron job,你可以在目录/etc/cron.daily里找到名为logrotate的配置文件.那么它是在每天的上面时候运行的呢?打开文件/etc/crontab就知道了,下面是我机器上的情况: 1 2 3 4 5 6 7 8 9 10 SHELL=/

在Linux系统中使用logrotate来管理日志文件的方法

  日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到.对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题.除此之外,处理一个单个的庞大日志文件也常常是件十分棘手的事. logrotate是个十分有用的工具,它可以自动对日志进行截断(或轮循).压缩以及删除旧的日志文件.例如,你可以设置logrotate,让/var/log/foo日志文件每30天轮循,并删除超过6个月的日志.配置完后,logrotate的运作完全自动化,不必进行任

Linux中怎么安装/卸载mysql数据库

MySQL 的安装 本文所使用的 MySQL 版本为 mysql-3.22.27.tar.gz(原始码档),作业环境为 RedHat6.0 +CLE0.8 . MySQL 预设情况下会安装至 /usr/local 目录下,不过为了日後移除方便,建议将 mysql 独立安装在 /usr/local/mysql 目录.底下为安装 MySQL 的步骤: 取得 mysql-3.22.27.tar.gz 後, 於 /usr/local 目录下解开:  代码如下 复制代码 # cd /usr/local #

linux中关闭与删除mysql二进制日志的方法

1.删除mysql二进制日志 # mysql -uroot -p密码 -e"reset master;" 2.关闭二进制日志 编辑文件: vi /etc/my.cnf 注释如下代码: #log-bin=mysql-bin #binlog_format=mixed 3.重启mysql服务器 service mysql restart 友情提示,二进制日志文件可以非常方便的给我们数据进行备份哦,如果你系统出严重问题我们通常利用二进制文件进行数据恢复操作哦.

linux中一些常用的mysql命令总结

一.总结一下Linux下MySQL的一些命令: 1.Linux下启动mysql的命令: mysqladmin start /ect/init.d/mysql start (前面为mysql的安装路径) 2.Linux下重启mysql的命令: mysqladmin restart /ect/init.d/mysql restart (前面为mysql的安装路径) 3.Linux下关闭mysql的命令: mysqladmin shutdown /ect/init.d/mysql shutdown (

linux中shell脚本进行MySQL数据库定时备份

具体方法  代码如下 复制代码 #!/bin/bash #Shell Command For Backup MySQL Database Everyday Automatically By Crontab #Author : Carlos Wong #Date : 2010-08-24 #配置参数  代码如下 复制代码 USER=root #数据库用户名" >用户名 PASSWORD=××××× #数据库用户密码 DATABASE=TIENIUZAI    #数据库名称 WEBMASTER

linux中搭建awstats分析nginx日志

系统:centos 5.x   需要的软件包:awstats-7.3.tar.gz 1.修改nginx日志格式  代码如下 复制代码 log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                   '$status $body_bytes_sent "$http_referer" '                   '"$http_u

linux中重置服务器的mysql用户密码

最近使用阿里云服务器,由于安装lnmp安装包时疏忽,安装完后忘记了mysql的root用户密码.本来想重装服务器系统,但由于之前换系统和安装环境花费了不少时间,也觉得没必要出现什么问题都去重装系统.由于服务器安装的是Linux系统,于是只有用shell命令去修改了. 在进行重置mysql用户密码时首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库.因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的状态下,其他的用户也可以任意地登录和修改My

linux中shell脚本统计apache日志中页面访问量

需求:在程序中有两个页面,用于某种用途,现需要统计这两个页面在每分钟内的访问量,包括总访问次数,成功次数(状态码200),失败次数.然后写入到mysql中. mysql字段:id(自增长).time(实际统计时间).year.month.day.hour.visit(总访问量).success.fail.target(目标) #!/bin/bash #Desc       : analysis apache log for witch pages with one minutes #instal