问题描述:
Linux磁盘清理 .
/dev/vda1
系统盘满了, 想知道哪些文件占用了大量磁盘空间
。
检查磁盘水位
# 检查一台服务器磁盘使用空间,发现磁盘已经使用了100%
df -Th
方法1:最佳排查办法ncdu
ncdu
查看目录占用空间(包括隐藏目录
)
查看目录大小的常用命令是du-sh
,但是该命令不显示隐藏目录的大小
,最佳解决办法是使用ncdu
查看
# Ubuntu安装ncdu
sudo apt install ncdu -y
# Centos安装ncdu
yum install ncdu -y
使用ncdu
查看磁盘存储占用详情
# 用ncdu查看当前目录存储情况
ncdu
# 查看根目录存储情况
ncdu /
向右
进入目录,向左
返回上级目录。
方法2:查看哪个目录占用磁盘
du
命令:
# 查看目录/文件总大小
## -s 只显示总和
## -h 以高可读显示
du -sh
查看系统磁盘空间
# 查看系统磁盘空间
## -l 只显示本地文件系统
## -T 显示文件系统的类型
## -h 以高可读显示
df -lTh
Used
:已经使用的空间Avail
:可以使用的空间Mounted on
:挂载的目录
/dev/vda
和 /dev/vdb
都是 virtio-block
类型的设备,而 /dev/sda
是 sd
即 SCSI
类型的设备。
常见的设备命名:
fd
:软驱hd
:IDE 磁盘sd
:SCSI 磁盘tty
:terminalsvd
:virtio 磁盘
排查思路
:
- 1、
cd /usr
当然这里不一定是/usr目录,最好是cd到 根目录再执行下一步 - 2、
du -sh *
看哪个目录占用空间大- 2.1
du-sh *| grep G
只查看G以上的单位 - 2.2
du-sh *|sort -hr
查看最大的目录,并排序
- 2.1
# du-sh * 根本不显示隐藏目录的大小
## -s 只显示容量总和
## -h 显示易读的容量单位
du -sh *
- 3、重复前两步,根据实际情况删除或者移走
- 4、日志的话可以运行
cat /dev/null > file.log
清空 - 5、软件包的话可以
rpm -e
卸载或者rm -rf dir
具体:可以通过下面的方法进行清理
:
使用如下命令查找大于100M的大文件,发现有几个日志文件及临时文件比较大,使用rm –rf
删除即可。
# 列出大于100M的文件
find / -size +100M -exec ls -lh {} \;
查看目录占用空间综合
也可以使用 du -h --max-depth=1 /
路径 查询文件夹占用显示该目录占用空间的总和
# 查看系统存储情况
## -h 显示易读的容量单位
du -h --max-depth=1
## --max-depth=1的另一用法-d1
du -d1 -h
# 查看/var存储情况
du -h --max-depth=1 /var
# 显示哪些容器目录具有最大的日志文件
du -d1 -h /var/lib/docker/containers | sort -h
删除文件时,要小心,不要删除系统文件了 :)
查看隐藏目录占用磁盘容量
# 查看隐藏目录的磁盘占用
## -s 只显示容量总和
## -h 显示易读的容量单位
du -sh .隐藏目录名