磁盘满了网站就挂,这篇讲怎么查谁吃了空间。
df:看磁盘还剩多少
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 12G 26G 32% /
-h 人性化显示。Use% 到 90% 就要警惕了。还有个隐形杀手:
df -i
看 inode(文件个数)使用率。小文件太多会把 inode 吃光,磁盘明明有空间却写不进文件。
du:谁吃了空间
du -sh /var/log/* | sort -rh | head -10
-s 只显示总和,-h 人性化,sort -rh 按大小倒排。三层钻取找凶手:先看 / 下哪个目录大,再进目录看子目录,一层层定位。
mount / lsblk:挂载概念
lsblk
mount | grep vda1
Linux 没有 C 盘 D 盘,所有磁盘都“挂”到目录树上。/dev/vda1 挂到 /,/dev/vdb1 可以挂到 /data。
/proc:一切皆文件
cat /proc/meminfo | head -3
cat /proc/cpuinfo | grep "model name" | head -1
硬件信息都是文件,cat 就能看。
实战:磁盘满三板斧
# 1. df -h 确认哪个分区满
# 2. du 三层钻取找大目录
# 3. 删日志用 truncate 别 rm(rm 后进程还占着句柄,空间不释放)
truncate -s 0 /var/log/huge.log
磁盘杀手排行榜
日志没轮转 /var/log
Docker 镜像层 /var/lib/docker
备份文件越积越多
/tmp 临时文件
小结
下一篇 L10:SSH 远程连接——密钥登录一把梭,scp 传文件,config 写别名。