服务器有时磁盘空间不足,我们需要定位是哪些文件比较大(大部分清空下都是log文件),下面就是一个比较通用步骤来定位和清空:

从根目录起,统计文件夹大小

  1. cd /
  2. du -lh --max-depth=1

image.png

  1. cd data
  2. du -lh --max-depth=1

image.png
以此类推找到最大的文件,并进行清理。

若发现当前文件夹占比很大,但是du命令出来的文件夹都很小说明是当前文件夹里面存在大文件如下图:
image.png
通过 ll 命令可观察到确实存在多个大文件,确认好文件无用即可将其删除
image.png

清理文件

一般情况下tmp文件夹下的文件是可以清理的,或者.log文件
如果是日志文件不是当天的,可以考虑直接删除(rm -rf xxx.log)
若日志文件是当天的,如果直接删除可能会导致应用报错甚至崩溃,则可以考虑使用清空内容而不是删除文件的方式进行,如下:

  1. echo "" > xxx.log

Docker容器日志清理

有时docker上面的容器没有设置日志大小,使得日志越来越大最后占满整个磁盘,可以考虑使用下面命令进行清理:

  1. find /var/lib/docker/containers/ -name *-json.log

找到所有docker 容器日志,然后使用echo “” > xxx-json.log命令进行清理,如果日志文件很多可以考虑使用notepad++ shift + alt + 方向键批量添加如下图
image.png

查看清理结果

使用以下命令可以查看各个磁盘使用率

  1. df -hl

image.png

另外docker容器日志大小设置

  1. services:
  2. zookeeper:
  3. image: zookeeper:3.4.12
  4. container_name: zookeeper
  5. network_mode: "host"
  6. restart: always
  7. logging:
  8. options:
  9. max-size: "1024k"
  10. max-file: "5"
  11. volumes:
  12. - /home/xx/zookeeper/data:/data
  13. - /home/xx/zookeeper/logs:/datalog
  14. - /home/xx/zookeeper/conf/zoo.cfg:/conf/zoo.cfg