当前位置: 首页 > wzjs >正文

网站建设高营销软件

网站建设高,营销软件,wordpress查询插件,提供网站建设备案公司环境: Ubuntu20.04 问题描述: Ubuntu系统rsyslog日志突然占用磁盘空间超大怎么办?最高200G 解决方案: 方案1: 1.检查是什么产生的 sudo tail -n 1000 /var/log/syslog2.先手动清空日志释放空间 sudo truncate …

环境:

Ubuntu20.04

问题描述:

Ubuntu系统rsyslog日志突然占用磁盘空间超大怎么办?最高200G
在这里插入图片描述

解决方案:

方案1:

1.检查是什么产生的

 sudo tail -n 1000 /var/log/syslog

在这里插入图片描述

2.先手动清空日志释放空间

sudo truncate -s 0 /var/log/syslog

3.查看cat /etc/logrotate.d/rsyslog配置

(base) root@VM-0-2-ubuntu:/mnt/program/elk/docker-elk# cat /etc/logrotate.d/rsyslog
/var/log/syslog
{rotate 7dailymissingoknotifemptydelaycompresscompresspostrotate/usr/lib/rsyslog/rsyslog-rotateendscript
}/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
{rotate 4weeklymissingoknotifemptycompressdelaycompresssharedscriptspostrotate/usr/lib/rsyslog/rsyslog-rotateendscript
}

4.设置策略

您想实现的是:让系统的日志文件(如 /var/log/syslog)总大小控制在固定阈值(例如 10G)以内,超过后自动清理或循环覆盖旧日志,避免日志无限增长占满磁盘空间。

Linux 下常用的日志管理手段是 logrotate 配合日志轮转,但 logrotate 本身不支持按照总大小限制删除旧日志,它是基于日期轮转(daily/weekly)和备份份数(rotate X)来控制日志量。


方案2:利用 logrotate,实现基于文件个数和单个文件大小的限制

  • logrotate 可以配置单个日志文件轮转的最大大小(maxsizesize),当日志超过该大小时执行轮转
  • 结合 rotate 参数限制保留的旧日志个数,间接控制总日志大小

示例 /etc/logrotate.d/syslog 配置:

/var/log/syslog {size 100M               # 当日志文件大于100MB时,轮转日志rotate 100              # 保留最大100个轮转文件missingoknotifemptycompressdelaycompresscopytruncate
}
  • 100个文件 × 100MB = 10GB 左右的总日志大小
  • copytruncate 适用于不能重启日志写入进程的情况(如 rsyslog)
  • 缺点:不能严格保证总大小恰好10G,日志大小会有波动

方案3:使用 maxsize 配合 dailyrotate 控制

/var/log/syslog {dailymaxsize 100M           # 当日志超过100MB时轮转rotate 100             # 保留100个轮转文件missingoknotifemptycompressdelaycompresscopytruncate
}
  • 轮转时间触发和大小触发二者任一满足即可轮转
  • 仍是间接控制总文件大小

方案4:使用专门的日志管理工具 — logrotate 结合 systemd-journald

如果您的系统用的是 systemd ,推荐使用 journald 管理日志,支持直接配置最大磁盘使用量

查看 journald 配置文件 /etc/systemd/journald.conf

  • 关键参数:
SystemMaxUse=10G   # 日志最大占用磁盘空间,超过自动清理旧日志
RuntimeMaxUse=10G  # 运行时日志最大占用空间
MaxRetentionSec=2week  # 日志最长保留时间

修改后重启 systemd-journald

sudo systemctl restart systemd-journald

这样journald 会自动控制日志文件大小,删除旧记录,避免占用超过10G。


方案5:对 Docker 容器日志限制大小

如果是 Docker 容器产生的大量日志,也要限制容器日志大小:

Docker Compose 配置示例(限制单个日志文件最大10M,最多3个轮转文件):

logging:driver: "json-file"options:max-size: "10m"max-file: "3"

方案总结

方案编号方案名称适用场景是否严格控制总大小配置复杂度
1logrotate size + rotate传统日志文件管理间接控制简单
2logrotate maxsize + daily传统日志文件管理间接控制简单
3systemd-journald 配置systemd 系统日志管理严格控制简单
4Docker 容器日志限制Docker 容器日志管理严格控制简单

操作示例

修改 /etc/logrotate.d/rsyslog,添加 size 和 rotate

/var/log/syslog
{size 100Mrotate 100missingoknotifemptycompressdelaycompresscopytruncatepostrotate/usr/lib/rsyslog/rsyslog-rotateendscript
}

执行强制轮转测试:

sudo logrotate -f /etc/logrotate.d/rsyslog

修改 /etc/systemd/journald.conf(本案例选这个)

编辑配置:

sudo nano /etc/systemd/journald.conf

找到并设置:

SystemMaxUse=10G
RuntimeMaxUse=10G
MaxRetentionSec=2week

在这里插入图片描述

保存后重启服务:

sudo systemctl restart systemd-journald

备注

  • copytruncate 用于避免日志写入程序重启,适合 rsyslog
  • 如果您使用的是 journald 作为主要日志管理工具,建议以 journald 配置为主
  • 对于 Docker 产生的日志,请务必设置日志最大大小和轮转,避免单个日志文件无限制膨胀

http://www.dtcms.com/wzjs/206106.html

相关文章:

  • 山西省建设资格注册中心网站百度搜索数据
  • 网站写好了怎么做后台管理关键词优化seo费用
  • 健康生活网站开发系统背景长沙seo男团
  • 两支队伍建设专题网站aso优化重要吗
  • 中央军事新闻最新消息长沙seo公司
  • 做响应式网站好不好百度知道合伙人官网登录入口
  • 网上购物平台口碑排名排名优化网站seo排名
  • 安远做网站潍坊网站建设seo
  • 制作公司网站设品牌全网推广
  • 怎么做校园表白网站武汉seo工厂
  • php网站部署步骤打广告去哪个平台
  • 网站移动适配怎么做在线域名查询网站
  • 微信公众平台小程序官网河北百度seo
  • 免费1级做爰片免费网站批量查询指数
  • 德州建设网站青岛网络工程优化
  • 网站建设需要经过哪几个步骤上海网站优化
  • 阿里云服务器搭建wordpress上海seo优化公司
  • 做公司网站每年多少钱代做百度首页排名
  • 移动app网站模板360浏览器网页版入口
  • 商业网站域名东莞网站推广营销网站设计
  • 静态网站 分页无锡seo网站排名
  • 青岛谁优化网站做的好处手机360优化大师官网
  • 凡科网站后台域名信息查询
  • 什么专业会制作网站公司网络推广的作用
  • 网站右下角图片广告代码网站的优化从哪里进行
  • 百度注册入口广州百度推广优化排名
  • 网站的文本链接怎么做抖音seo培训
  • 谁可以教我做网站网络营销的成功案例
  • 做微课的网站衡水seo优化
  • 网站开发如何学习永久免费的培训学校管理软件