CentOS 系统日志清理

CentOS 系统日志清理

随着系统的日益复杂, aliyun空间捉襟见肘,常常报系统磁盘空间超过80%, 甚是苦恼.

经常要手动去清理各类日志和备份文件,消耗大量时间和精力.

通常使用如下命令巡检:

代码语言:javascript代码运行次数:0运行复制

find / -size +100M -exec ls -lh {} ;

查找大于100M的文件, 包含日志文件和临时文件.

如果执行命令后报如下:

CentOS 系统日志清理

请调整你的权限

该目录下Linux 系统 /var/log/journal/ 堆满了日志往期

CentOS 系统日志清理

然后baidu.com了下, 原来该目录下还存在如下不同日志

/var/log/messages 绝大多数的系统日志都记录到该文件 /var/log/secure 所有跟安全和认证授权等日志都会记录到此文件 /var/log/maillog 邮件服务的日志 /var/log/cron crond计划任务的日志 /var/log/boot.log 系统启动的相关日志

检查当前journal使用磁盘量

du -t 100M /var journalctl --disk-usage

查看某个目录的文件大小并排序(单位为MB)

代码语言:javascript代码运行次数:0运行复制

du -hm --max-depth=1 /var/ | sort -n
CentOS 系统日志清理

清空 /var/log/journal/ 的步骤

CentOS 系统日志清理

a. 用echo命令,将空字符串内容重定向到指定文件中

代码语言:javascript代码运行次数:0运行复制

echo "" > system.journal

说明:此方法只会清空一次,一段时间后还要再次手动清空很麻烦,这里可以用以下命令让journalctl 自动维护

b. journalctl 命令自动维护文件大小

1)只保留近一周的日志

智谱清影 智谱清影

智谱清影是智谱AI最新推出的一款AI视频生成工具

智谱清影 74 查看详情 智谱清影

journalctl --vacuum-time=1w

如果想保留2天:journalctl --vacuum-time=2d

2)只保留500MB的日志

journalctl --vacuum-size=500M

3)直接删除 /var/log/journal/ 目录下的日志文件

rm -rf /var/log/journal/61af893a65b34e008dbf8a1038fd7e61

CentOS 系统日志清理

如果要手工删除日志文件,在删除前需要先轮转一次journal日志

代码语言:javascript代码运行次数:0运行复制

systemctl kill --kill-who=main --signal=SIGUSR2 systemd-journald.service

要启用日志限制持久化配置,可以修改 /etc/systemd/journald.conf

代码语言:javascript代码运行次数:0运行复制

SystemMaxUse=16MForwardToSyslog=no

然后重启日志service

代码语言:javascript代码运行次数:0运行复制

systemctl restart systemd-journald.service

检查journal是否运行正常以及日志文件是否完整无损坏

代码语言:javascript代码运行次数:0运行复制

journalctl --verify[root@localhost log]# journalctl --verifyPASS: /var/log/journal/61af893a65b34e008dbf8a1038fd7e61/system.journal

总结:

测试是一门技术, 更是一门艺术. 也许你今天拥有的技术, 明天就会被淘汰. 同时需要我们开拓思维和眼界, 积极拥抱变化, 学习新知识, 新方法,新技能, 计算机领域讲究的是实践, 学习更要讲究方式方法. 学习和动手一定要结合, 光看不练,犹如看武功秘籍, 是永远成不了武功大侠的.

Story:

古语云:欲求其上上,而得其上;欲求其上,而得其中;欲求其中,而得其下.

说的就是起点高才能至高的道理。制定一个远大的目标,即使你达不到,只要不断地向它努力,最终肯定也会有所作为。定的目标很低,对于一点小小的成绩就心满意足,这样是干不了什么大事的。

以上就是CentOS 系统日志清理的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/469920.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月8日 07:08:34
下一篇 2025年11月8日 07:09:28

相关推荐

  • 使用Go语言构建网站搜索:探索开源爬虫与索引方案

    本文旨在为希望使用go语言实现网站搜索功能的开发者提供指导。我们将探讨构建网站搜索所需的核心组件,包括高效的网页爬取工具和强大的搜索算法。文章将介绍一个流行的go语言开源网页爬虫项目,并讨论其在实际应用中的潜力和注意事项,帮助读者快速启动其go语言搜索项目。 在现代网站应用中,提供高效的站内搜索功能…

    2025年12月16日
    000
  • Go 服务部署策略与实践指南

    go语言服务部署因其相对年轻的生态系统,目前尚缺乏大量开箱即用的专业工具。核心策略在于利用go强大的跨平台编译能力生成独立二进制文件,避免在生产环境进行编译。开发者通常需要通过自定义脚本(甚至使用go语言编写)或适配如capistrano等通用部署工具来实现自动化。容器化技术如docker和kube…

    2025年12月16日
    000
  • 构建基于API的微服务架构:Go API与Rails前端的实践指南

    本文深入探讨了如何从传统的ruby on rails整体应用转向服务导向架构(soa),重点讲解了使用go语言构建api服务与rails作为前端应用服务器的组合。我们将解析这种架构的优势、组件职责划分、orm与控制器在soa中的定位,并探讨如何应对功能迁移的考量,旨在提供一个清晰、专业的教程,帮助开…

    2025年12月16日
    000
  • Go Goroutine调度机制与阻塞问题深度解析

    本文深入探讨go语言`goroutine`的协作式调度机制。当存在一个不主动让出cpu的无限循环`goroutine`时,它会阻塞其他`goroutine`的执行,即使这些`goroutine`包含`time.sleep`等让出操作。文章将详细阐述`goroutine`的让出时机、`runtime.…

    2025年12月16日
    000
  • Go语言中函数作为一等公民:灵活实现运行时函数选择与传递

    go语言将函数视为一等公民,允许它们作为参数传递和作为值存储。本文将深入探讨如何在go中利用这一核心特性,实现函数的灵活传递以及基于字符串名称的运行时动态选择。通过避免传统动态语言中通过字符串获取函数指针的复杂性,我们将展示go语言如何以其独特且类型安全的方式,高效地处理类似需求,提升代码的灵活性和…

    2025年12月16日
    000
  • 使用 Go 语言更高效地遍历数组并拼接字符串

    本文介绍了在 Go 语言中,如何更高效地遍历数组并提取特定字段,最终拼接成字符串。避免了传统字符串拼接方式带来的性能损耗,通过 `bytes.Buffer` 和 `[]byte` 两种方式,展示了更优的字符串构建方法,并提供了相应的代码示例,帮助开发者编写更高效的 Go 代码。 在 Go 语言中,经…

    2025年12月16日
    000
  • 访问 Go 结构体私有字段:反射与 unsafe 包的深度剖析

    本文探讨了在 go 语言中从其他包访问结构体私有字段的方法。主要介绍了使用 `reflect` 包进行读取,以及利用 `unsafe` 包进行修改的方案,并深入分析了各自的优缺点和潜在风险。同时,也讨论了在白盒测试场景下的最佳实践,帮助开发者在保证代码安全和可维护性的前提下,实现特定的需求。 在 G…

    2025年12月16日
    000
  • 深入理解 Go 语言结构体匿名嵌入字段的限制与访问机制

    本文深入探讨了 go 语言中结构体匿名嵌入字段的特性,特别是涉及映射类型时的常见误区。文章阐明了为何字面量映射类型(如 `map[string]string`)不能直接作为匿名字段嵌入,以及如何通过定义具名类型来解决。同时,详细解释了即使嵌入具名映射类型,访问其元素也必须通过字段的类型名,以此区分与…

    2025年12月16日
    000
  • API驱动的SOA架构:Go与Rails协同的实践与考量

    本文旨在探讨从传统ruby on rails单体应用向api驱动的服务导向架构(soa)转型的关键考量。我们将分析go作为api服务器与rails作为应用服务器的混合栈,阐明orm、控制器等组件在soa中的定位,并详细阐述soa的诸多优势,如职责分离、可伸伸缩性与简化更新。同时,文章也将提供soa设…

    2025年12月16日
    000
  • Go语言中解析混合类型JSON数组的策略

    在Go语言中,当尝试将包含不同数据类型的JSON数组(例如,一个对象后紧跟一个数组)直接反序列化为单一Go结构体切片时,常会遇到`json: cannot unmarshal array into Go value`错误。本文将详细介绍如何利用`json.RawMessage`实现分阶段反序列化,从…

    2025年12月16日
    000
  • 深入理解Go语言:方法接收器与函数参数的本质差异

    在go语言中,方法接收器(receiver)是函数参数的一种特殊形式,它允许我们将函数“绑定”到特定类型上,从而创建该类型的方法。与普通函数参数不同,接收器通过其独特的语法将行为附加到类型实例,实现了类似面向对象编程中的方法调用机制,但其底层仍是参数传递。 引言:Go语言中的方法与函数 Go语言并非…

    2025年12月16日
    000
  • Go语言中函数作为一等公民:实现动态传递与运行时选择

    go语言将函数视为一等公民,允许它们像普通变量一样被赋值、作为参数传递或存储在数据结构中。本文将深入探讨如何在go中利用这一特性,实现函数的动态传递与运行时选择,避免传统动态语言中“字符串转函数指针”的模式,通过函数类型和映射(map)优雅地解决运行时函数选择问题,从而编写出更灵活、类型安全的go代…

    2025年12月16日
    000
  • Go语言中基于磁盘的延迟队列实现:优化大规模任务内存占用

    本文探讨了go语言中处理大量延迟任务时,因内存占用过高而面临的挑战,尤其是在使用`time.sleep`或`time.afterfunc`时。针对这一问题,我们提出并详细阐述了利用嵌入式数据库实现磁盘支持的fifo延迟队列的解决方案。通过将任务数据序列化并存储到磁盘,可以显著降低内存消耗,同时提供任…

    2025年12月16日
    000
  • Go语言中从任意栈深度退出Goroutine的策略与实践

    本文深入探讨了在go语言中从任意栈深度安全退出goroutine的多种方法。我们将详细介绍`runtime.goexit()`的直接退出机制、`panic`与`recover`的异常处理方式,以及go语言中更推荐的基于通道(channel)或`context`的优雅协作式退出模式。通过代码示例和最佳…

    2025年12月16日
    000
  • API驱动应用开发:Go与Rails在SOA中的实践与权衡

    本文探讨了从传统ruby on rails单体应用向api驱动的服务导向架构(soa)转型的关键考量。我们将深入分析go作为api服务器与rails作为应用服务器的协作模式,阐明在此架构下数据流转、orm与控制器的新角色。文章还详细列举了soa的诸多优势,并讨论了语言选择(特别是go)的潜力与挑战,…

    2025年12月16日
    000
  • Go语言程序建模:UML的适应性与范式转换

    go语言以其独特的并发模型和简洁语法受到青睐,但其与传统面向对象范式(如继承、多态)的差异,使得开发者在尝试使用uml等传统建模工具时面临挑战。本文旨在探讨go语言结构体、方法和组合机制如何影响建模实践,并强调了从以对象为中心的设计思维向go的组合式、过程式编程风格转变的重要性,以实现更符合go惯用…

    2025年12月16日
    000
  • 如何在Golang中读取配置文件

    答案:Golang中推荐使用Viper库读取JSON、YAML等格式的配置文件,支持环境变量、默认值及热更新,结构化配置便于维护;小项目可用标准库encoding/json解析JSON文件。 在Golang中读取配置文件,常用的方式是结合第三方库来解析JSON、YAML或TOML格式的配置。虽然标准…

    2025年12月16日
    000
  • 在Go语言中从Reader读取数据直到特定字符串分隔符

    本文探讨了如何在go语言中实现一个功能,即从`io.reader`接口读取数据,直到遇到一个特定的多字节字符串作为分隔符,并返回分隔符之前的所有内容。由于标准库的`bufio.reader.readstring`仅支持单字节分隔符,本文提供了一个自定义解决方案,通过迭代读取并结合`bytes.has…

    2025年12月16日
    000
  • 深入理解Go语言中的:=与=运算符

    在Go语言中,`:=` 和 `=` 运算符都用于变量赋值,但它们的功能和使用场景有着本质区别。`:=` 是一种短变量声明运算符,用于声明并初始化新变量,Go编译器会根据右侧表达式自动推断变量类型。而 `=` 则是纯粹的赋值运算符,用于为已声明的变量赋予新值,它不具备声明变量的能力。理解两者的差异是编…

    2025年12月16日
    000
  • Go语言中的组合与接口:一种特殊的“继承”

    本文旨在探讨Go语言中通过组合和接口实现类似继承特性的方法。Go语言本身并不支持传统面向对象编程中的继承,但通过结构体嵌入(组合)和接口,可以实现代码复用和多态,达到类似继承的效果。我们将深入分析这种机制,并通过示例代码演示其用法和局限性。 Go语言的设计哲学之一是简洁和实用,因此它没有采用传统的面…

    2025年12月16日
    000

发表回复

登录后才能评论
关注微信