前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用logrotate对宝塔的网站日志进行自动切割

使用logrotate对宝塔的网站日志进行自动切割

原创
作者头像
jwj
发布2022-06-27 16:02:50
5920
发布2022-06-27 16:02:50
举报

默认情况下,宝塔的 WEB 软件记录日志时,不会按日期将日志储存到不同的文件里,长时间的日志都记录到一个文件里,很不方便查阅和管理。

一、安装 logrotate

大多 Linux 系统一般都自带 logrotate,如果刚好你的系统没有自带,可以在github下载源代码进行编译安装。

或者直接尝试用命令进行安装,例如:

  • 红帽系统(Red Hat):yum install logrotatednf install logrotate
  • 乌班图(Ubuntu):sudo apt-get install logrotateapt install logrotate

二、原理

其实“切割”二字并不对,具体我们来简单说说个人理解的工作原理。

1.logrotate 执行时,会对符合配置里设定的条件的文件进行处理。

2.然后重命名日志文件,并创建新的日志文件。

3.执行其它操作,如:压缩文件。

三、配置

新建并编辑配置文件

sudo vim /etc/logrotate.d/btweblogs

配置内容

/www/wwwlogs/*.log  {
    # 间隔时间:daily=每天/weekly=每周/monthly=每月/yearly=每年
    daily
    # 保留份数,超过该数量的旧日志自动删除
    rotate 14
    # 忽略错误,如:文件不存在
    missingok
    # 使用日期格式重命名文件
    dateext
    # 对分离出来的文件进行压缩
    compress
    # 不压缩本次分离出来的文件
    delaycompress
    # 忽略空文件(即不分离空的文件)
    notifempty
    # 多个文件分离后只执行一次脚本
    sharedscripts
    # 文件分离后执行的脚本
    postrotate
        # 通知Nginx和Apache程序重载
        # Nginx
	[ -e /www/server/nginx/logs/nginx.pid ] && kill -USR1 `cat /www/server/nginx/logs/nginx.pid`
        # Apache
	[ -e /www/server/apache/logs/httpd.pid ] && kill -USR1 `cat /www/server/apache/logs/httpd.pid`
    endscript
}

四、结束

logrotate 除了可以分离压缩文件,还可以将分离出来的文件通过邮件发送到指定邮箱,具体方法可以查阅 logrotate 的手册

宝塔本身也有日志切割功能,如果没有压缩之类的需求,可以使用宝塔的功能。

最后的最后,还有一个福利。开发者们,欢迎您加入腾云先锋(TDP)反馈交流群,群内有丰富的活动可收获积分和成长值,兑换惊喜福利。加入方式:https://cloud.tencent.com/developer/article/1855195

我们是腾云先锋(TDP)团队,是腾讯云GTS官方组建并运营的技术开发者群体。里有最专业的开发者&客户,能与产品人员亲密接触,专有的问题&需求反馈渠道,有一群志同道合的兄弟姐妹,期待您的加入!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、安装 logrotate
  • 二、原理
  • 三、配置
  • 四、结束
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档