CentOS清理磁盘空间

  1. 起因

    在centos上发现mysql容器启动不起来,于是用docker logs mysql看了下日志,发现有报错信息,显示磁盘没有空间了

    1
    Error writing file '/var/lib/mysql/auto.cnf' (OS errno 28 - No space left on device) 
  2. 分析

    • 使用df -h可以看到/目录的磁盘使用率已经达到100%

      1
      2
      3
      4
      5
      6
      7
      8
      df -h
      Filesystem Size Used Avail Use% Mounted on
      devtmpfs 3.8G 0 3.8G 0% /dev
      tmpfs 3.8G 0 3.8G 0% /dev/shm
      tmpfs 3.8G 796K 3.8G 1% /run
      tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup
      /dev/vda1 50G 48G 0 100% /
      tmpfs 768M 0 768M 0% /run/user/0
    • 进入/目录,使用du -sh *查看各个目录所占用的空间大小,可以看到其中usrvar两个目录占用的空间最大

      1
      2
      3
      4
      5
      cd /
      du -sh *
      ..........
      26G usr
      21G var
    • 继续查看usrvar目录的空间占用情况,这里使用sort命令按照空间占用从大到小的顺序进行排列,并且通过head命令只展示前10项

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      du /usr/ | sort -nr | head
      20092340 /usr/
      5654140 /usr/elasticsearch
      4665460 /usr/nacos
      4562944 /usr/nacos/bin
      4562900 /usr/nacos/bin/logs
      2743372 /usr/elasticsearch/node-0
      2022416 /usr/elasticsearch/node-1
      1571536 /usr/from_pc
      1359084 /usr/elasticsearch/node-0/logs
      1349160 /usr/share

      du -h var
      13778628 /var/
      7738316 /var/lib
      6870460 /var/lib/docker
      5616924 /var/log
      4220916 /var/log/journal
      4220908 /var/log/journal/20200817140600710641424667768813
      3852356 /var/lib/docker/containers
      3825708 /var/lib/docker/containers/67a37780732bd46633f1ef94ad3ba9ea389f41bee9e929fc63c7e96fe1d3d57c
      2789052 /var/lib/docker/overlay2
      1007108 /var/log/redis
  3. 清理

    经过上面分析后,可以发现占用空间较大的主要是一些日志和自己创建的目录,比如这里的/usr/from_pc保存了一些软件压缩包,清理该目录也不会有任何影响