【linux】磁盘空间不足-常用排查和处理命令
1.通查一下
df -h #查看服务器磁盘空间情况
du -hs * 2>/dev/null #列出各目录所占空间大小
或
du -h -d 1 2>/dev/null #列出各目录所占空间大小
1.1情况一
df 磁盘空间和du 目录空间占用相等,那就去查到占用磁盘比较的大文件(日志文件、备份数据、备份日志等)
1.2 情况二
df 磁盘空间和du 目录空间占用不相等,那就去排查 是否有已被删除的文件还在被进程占用,导致磁盘空间无法释放。
2. 清理大文件(情况一)
du -ms * 2>/dev/null |sort -n
或
du -m -d 1 2>/dev/null |sort -n #找出占用比较大的目录 深度1级
du -hs * # 可读方式,列出所有文件、目录大小
du -ms * 2>/dev/null |sort -n #过滤掉报错信息,以M 为单位,当前目录下,所有文件夹 或目录大小,并排序。
或
du -h -d 2|grep [GT] |sort -n # 筛选出 G T单位的目录或文件
du -ks * #查看存储大的目录
cd #进入大存储目录
ls -l #找出大存储文件
rm #大存储文件
3. 释放已删除文件占用的空间
lsof(list open files)是一个列出当前系统打开文件的工具。
使用 lsof 命令我们可以找到在某些进程打开和使用时被删除的文件。
lsof | grep -i "deleted"
或
lsof +L1
上面的命令会给你被删除的文件的 pid,但它们仍然存在于系统中,处于删除状态。因此,为了释放文件系统的空间,我们可以通过 pid 来安全地杀死这些进程。
ps -ef |grep java #查询进程PID
kill -9 PID #杀死进程
cd #到个应用目录,
./spingBoot.sh start #重启服务