Linux日志管理神器logrotate

本文介绍了Linux系统中的日志管理工具logrotate,包括其功能、配置文件解析、常用参数以及实例演示。logrotate允许设置转储周期、保留日志数量、压缩策略等,确保日志的有效管理和存储。文章还展示了nginx和mysql的日志配置示例,以及如何手动执行和查看logrotate任务。

logrotate 是一个 Bash 的 SHELL 脚本,可对日志文件进行切分,并将切分后的日志放在统一目录。

系统默认安装logrotate工具,主配置文件为/etc/logrotate.conf,一般我们会将配置文件放在/etc/logrotate.d/目录下。

logrotate配置文件参数解释:

daily/weekly/monthly/yearly:转储周期,每天、每周、每月、每年,任选其一,一般都是以”天“为周期
rotate 12:保留12个历史log版本
dateext:切割后的log文件以当前日期格式结尾(即xxx.log-20190401),如果注释掉,则是以数字方式递增结尾(即xxx.log.1)
compress:使用gzip压缩转储后的log,日志切割后自动压缩,压缩后缀为.gz
delaycompress:与compress选项一起使用,delaycompress指示logrotate不要将最近的日志压缩,压缩在下一次轮询周期进行。
missingok:忽略错误
notifempty:如果log是空,不转储
create 0664 www www:指定权限创建全新的log文件

logrotate命令几个常用的参数:

-d:debug模式,用于测试配置文件是否有错误
-f:强制执行log转储,即手动触发
-v:显示执行过程
-m:发送log到指定邮箱

例:手动执行log转储
logrotate -fv /etc/logrotate.d/mysql-log-rotate

这里以nginx和mysql举两个示例,可以根据自身情况修改使用

vi /etc/logrotate.d/nginx
1
vi /etc/logrotate.d/nginx
/var/log/nginx/*.log {
#create 0644 www www
daily
rotate 7
missingok
notifempty
compress
dateext
delaycompress
sharedscripts
postrotate
/bin/kill -USR1 cat /var/log/nginx/nginx.pid 2>/dev/null 2>/dev/null || true
endscript
}

vi /etc/logrotate.d/mysql
/usr/local/mysql/log/mysql*.log {
#create 600 mysql mysql
notifempty
daily
rotate 30
missingok
compress
dateext
delaycompress
sharedscripts
postrotate
/usr/local/mysql/bin/mysqladmin -uroot -p’password’ flush-logs
endscript
}

允许为单个配置指定多个日志文件,例如

/var/log/httpd/access.log
/var/log/httpd/error.log
/var/log/httpd/mysite/*.log
{
rotate 5
mail nobody@example.org
size 100k
sharedscripts
postrotate
/usr/bin/killall -HUP httpd
endscript
}

查看logrotate定时执行配置:
cat /etc/anacrontab

强制执行logrotate命令:
logrotate -vf /etc/logrotate.d/mmmmmm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值