1.简单操作

坊间有一句谣言:Linux没有垃圾文件,只有Windows才有,说的好像外星人和外星人之间沟通不需要语言一样。

操作系统,顾名思义就是操作各种文件的系统。它不可能没有日志文件,因为记录操作历史日志,可以方便管理。它更不可能不产生临时文件,就像剪纸一样,临时产生一些废料是再自然不过的事情。

Linux到底有没有占用空间的垃圾文件,下图就可以说明。

未清理前发现硬盘根分区空间告急,用du -t 100M /varjournalctl --disk-usage命令一查,发现/var/log/journal日志文件占用了近3G空间,每个日志文件体积高达128M,这些日志文件记录了很长时间以来的systemd情况,毫无价值,用journalctl --vacuum-size=10M命令将其清理之后,腾出了2.7G的空间。用df命令一查,/根分区果然宽敞了很多。

接下来,我还要探索其他清理Linux垃圾的方法……

2.详情

CentOS系统中有两个日志服务,分别是传统的 rsyslog 和 systemd-journal

systemd-journald是一个改进型日志管理服务,可以收集来自内核、系统早期启动阶段的日志、系统守护进程在启动和运行中的标准输出和错误信息,还有syslog的日志。

该日志服务仅仅把日志集中保存在单一结构的日志文件/run/log中,由于日志是经历过压缩和格式化的二进制数据,所以在查看和定位的时候很迅速。

本文转自米扑博客:Linux 系统 /var/log/journal/ 垃圾日志清理

默认情况下并不会持久化保存日志,只会保留一个月的日志。另外,一些rsyslog无法收集的日志也会被journal记录到。

rsyslog作为传统的系统日志服务,把所有收集到的日志都记录到/var/log/目录下的各个日志文件中。

常见的日志文件如下:

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

曾经有人说:Linux没有垃圾文件,Windows才有垃圾文件,实际上不是这样的,两者都会有垃圾文件。

操作系统,就是操作各种文件的系统,它不可能没有日志文件,更不可能不产生临时文件,就像剪纸一样,临时产生一些废料是再自然不过的事情。

Linux到底有没有占用空间的垃圾文件,这个看如何判定了,例如好几年前、几个月前的日志文件、系统文件,基本没什么用处,算垃圾文件吗?

  ls -lhm --full-time /var/log/journal/f9d400c5e1e8c3a8209e990d887d4ac1_bk_20190122/ | sort -k6 | head -n30

  # ls -lhm --full-time /var/log/journal/f9d400c5e1e8c3a8209e990d887d4ac1_bk_20190122/ | sort -k6 | head -n30
total 3.5G
  -rw-r-x---+ 1 root systemd-journal 64M 2018-03-28 01:36:01.010275802 +0800 system@00000000000000000000000000000000-00000000000002ca-000567d28f35cca7.journal
  -rw-r-x---+ 1 root systemd-journal 8.0M 2018-03-28 01:36:01.100275802 +0800 user-65534@4ee96b2fbd8b4a82beee0402402fee03-0000000000005419-000567f7fd08bd2f.journal
  -rw-r-x---+ 1 root systemd-journal 72M 2018-04-02 19:16:41.644934707 +0800 system@00000000000000000000000000000000-0000000000010a47-0005686852f561be.journal
  -rw-r-x---+ 1 root systemd-journal 8.0M 2018-04-02 19:16:41.714934707 +0800 user-65534@4ee96b2fbd8b4a82beee0402402fee03-0000000000011f98-00056872cab77761.journal
  -rw-r-x---+ 1 root systemd-journal 72M 2018-04-08 05:48:01.673026304 +0800 system@00000000000000000000000000000000-0000000000021c40-000568dbb97116ae.journal
  -rw-r-x---+ 1 root systemd-journal 72M 2018-04-13 18:25:01.967846109 +0800 system@00000000000000000000000000000000-0000000000033800-00056949207ae8a1.journal
  -rw-r-x---+ 1 root systemd-journal 72M 2018-04-18 04:12:35.385621922 +0800 system@00000000000000000000000000000000-0000000000045c3e-000569b848f6f86c.journal
查看垃圾文件的方法

未清理前发现硬盘根分区空间告急,用 du -t 100M /var 或 journalctl --disk-usage 命令查看,发现/var/log/journal日志文件占用了近3G空间,每个日志文件体积高达8-128M,这些日志文件记录了很长时间以来的systemd情况,毫无价值,用journalctl --vacuum-size=10M命令将其清理之后,腾出了2.7G的空间。用df命令一查,/根分区果然宽敞了很多。

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

  du -hm --max-depth=1 /var/ | sort -n

  # du -hm --max-depth=1 /var/ | sort -n
  1 /var/adm
  1 /var/crash
  1 /var/db
  1 /var/empty
  1 /var/games
  1 /var/gopher
  1 /var/kerberos
  1 /var/local
  1 /var/nis
  1 /var/opt
  1 /var/preserve
  1 /var/spool
  1 /var/tmp
  1 /var/yp
  131 /var/www
  198 /var/lib
  486 /var/cache
  3695 /var/log
  8513 /var/
清空 /var/log/journal 文件的方法

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

  echo "" > system.journal

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

2、journalctl 命令自动维护文件大小

1)只保留近一周的日志

  journalctl --vacuum-time=1w

2)只保留500MB的日志

  journalctl --vacuum-size=500M

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

  rm -rf /var/log/journal/f9d400c5e1e8c3a8209e990d887d4ac1

问题与分析解决

执行 journalctl 命令时报错:Error was encountered while opening journal files: Input/output error

  # journalctl --vacuum-time=1w
  Error was encountered while opening journal files: Input/output error
问题分析:日志文件损坏

解决方法:删除之前的日志,并重启 journalctl 服务

  mv journal/f9d400c5e1e8c3a8209e990d887d4ac1 journal/f9d400c5e1e8c3a8209e990d887d4ac1_bk_20190122

  systemctl restart systemd-journald.service

查看 /var/log/journal/ 日志目录如下:

  # ll /var/log/journal/
  drwxr-sr-x 2 root systemd-journal 4096 Jan 22 11:26 f9d400c5e1e8c3a8209e990d887d4ac1
  drwxr-sr-x+ 2 root systemd-journal 12288 Jan 14 15:37 f9d400c5e1e8c3a8209e990d887d4ac1_bk_20190122

然后,再执行 journalctl 限制日志的命令:

  # journalctl --vacuum-time=1w
  Vacuuming done, freed 0B of archived journals on disk.
  # journalctl --vacuum-size=500M
  Vacuuming done, freed 0B of archived journals on disk.

转载于:https://www.cnblogs.com/iSun520/p/11170582.html

linux清理磁盘空间 - 日志 - journalctl相关推荐

  1. linux清理磁盘空间的脚本,在Ubuntu和Linux Mint上释放空间的7种简单方法

    Linux系统空间不足?您可以通过以下几种方式清理系统,释放Ubuntu和其他基于Ubuntu的Linux发行版上的空间. 随着时间的流逝,随着添加和删除程序,任何操作系统都可能变得混乱.如果您拥有T ...

  2. linux 清理磁盘空间

    df -h 查看服务器根路径磁盘空间 du -sh 统计当前文件夹下总大小 rm -f [文件名*] 递归强制删除文件,*可模糊匹配 备注:rm 命令清理磁盘空间后,需重启项目才可生效!

  3. linux清理磁盘空间

    1.查看磁盘占用大小: df -hl 2.cd / 进入根目录 du -h --max-depth=1 寻找当前目录和占用空间最大的文件夹 3.根据上面命令查看哪个目录占用磁盘比较大,针对目录删除 进 ...

  4. linux 查看磁盘空间_Linux下删点日志也能搞死人

    想了十天十夜不知道写些什么,那就写写面试题吧. == 1 == 在面试应聘者的时候,我常常会问: 在 Linux 下,如何删除一个目录下的所有 log 文件? 不知道是不是我人畜无害的围笑给了应聘者我 ...

  5. linux系统清理内存,Linux实验室:五个清理磁盘空间小妙招

    1删除安装包:清空系统APT缓存 玩儿电脑最怕的就是卡慢,那么电脑卡慢应该怎么解决呢?对于windows系统来说,你可能有各种免费的杀毒软件.全家桶帮你清空系统空间,那么Linux系统怎么办?今天笔者 ...

  6. 关于Linux服务器磁盘空间占满问题的解决方法

    下面给大家分享一篇关于Linux服务器磁盘占满问题解决方法(/dev/sda3 满了),需要的的朋友参考下吧 下面我们一起来看一篇关于Linux服务器磁盘占满问题解决(/dev/sda3 满了),希望 ...

  7. linux扩展磁盘空间命令_在Linux上监视磁盘空间– SQL Server DBA的有用命令

    linux扩展磁盘空间命令 In this article, we will explore the different Linux commands related to the disk spac ...

  8. 内存或磁盘空间不足 excel无法再次打开_Mac系统中检测和清理磁盘空间的几个工具...

    苹果电脑的内存和存储空间扩展比较麻烦,如果用户在购买的时候选择了搭配版的苹果电脑,那么你使用一段时间就会发现电脑已经没有多少空间了.此时最好的解决方法是卸载一些不用的程序,但是卸载前最好先检查一下你的 ...

  9. linux看磁盘空间du df,df与du查看磁盘空间使用不一致的解决方法

    近一段时间,某台服务器的磁盘空间使用不太正常,与其他的服务器相比,严重超出磁盘空间使用 使用df与du相关命令查看,具体结果如下: du -h Filesystem       Size  Used ...

最新文章

  1. spring 3.X与jdk 1.8不兼容
  2. 烧了微软10000张GPU,这伙人铁了心要砸大家的饭碗
  3. MySql数据库查询结果用表格输出PHP代码示例
  4. C#数据结构与算法揭秘17
  5. zookeeper 入门讲解实例 转
  6. mysql 函数重载_[赋值]函数,变量,重载 ,_第1页_169IT
  7. smbd的安装与使用
  8. Lua table 拾珍
  9. oracle中execute函数,Oracle 动态SQL execute immediate写法 zt
  10. javascript模态窗口Demo
  11. 重装 Windows 7 系统后电脑出现乱码怎么办
  12. android 混淆打包教程,Android 混淆打包
  13. Microsoft Office 2016 简体中文 Vol 版镜像下载(Pro Plus、Visio、Project 下载)
  14. 《三体》读后思考-泰勒展开/维度打击/黑暗森林
  15. Generative Image Inpainting with Contextual Attention
  16. 苹果手机微信聊天记录删除了怎么恢复?(基础操作版)
  17. java 导出压缩文件,里面文件名字乱码的问题(麒麟系统,linux)
  18. C++进制转换程序(二进制转换为十进制,十进制转换为二进制)
  19. quadro 2000专业显卡 win7计算机体验指数5.9,英伟达全新Quadro K2200专业级显卡评测...
  20. 调试 Windows 中的调试

热门文章

  1. 手把手教你入门Python爬虫(二)
  2. 随心所欲地弯曲XML
  3. 用苹果M1电脑,打任天堂明星大乱斗,是一种怎样的体验?
  4. 基于PHP+MySQL动漫社管理系统的设计与实现
  5. 微信公众号加密的学习
  6. JavaScript CSS Style属性对照表
  7. HTML5+JS游戏开发模块----canvas打字游戏升级版
  8. 百度UE富文本编辑器设置自适应大小和滚动条等
  9. 上周热点回顾(1.21-1.27)
  10. gunicorn启动