【Linux命令】删除大文件后磁盘空间未释放问题

时间:2021-05-20 16:15:20

前言

  工作中经常遇到Linux系统磁盘空间不足,但是删除后较大的日志文件后,发现磁盘空间仍没有被释放,有点摸不着头脑,今天博主带大家解决这个问题。

思路

  1、工作发现磁盘空间不足;

  2、找到占用磁盘空间较大的文件进行删除;

  3、删除文件后,查看磁盘空间使用情况,未释放;

  4、找到相应delete进程,杀掉即可,问题解决。

具体操作

 查看服务器磁盘空间使用情况

[root@i-3E5C86C8 ~]# df -h
Filesystem         Size  Used Avail Use% Mounted on
/dev/vda3           51G   34G   15G  70% /
tmpfs              7.8G     0  7.8G   0% /dev/shm
/dev/vda1          190M   38M  143M  21% /boot
/dev/mapper/vg-lv   92G  597M   87G   1% /disk1
You have new mail in /var/spool/mail/root
[root@i-3E5C86C8 ~]# 

 可以看出根目录下的可用空间15G,Used-34G,接着使用命令:du -sh *,查看当前所在目录的各子目录磁盘空间占用情况

[root@i-3E5C86C8 /]# cd /
[root@i-3E5C86C8 /]# du -sh *    #该命令可以列出当前所在目录的子目录所占空间大小
7.8M    bin
36M    boot
4.0K    cgroup
4.0K    Hello
200K    dev
538M    disk1
30M    etc
12G    home
232M    test
14M    jacoco
200M    lib
27M    lib64
4.0K    logs
16K    lost+found
4.0K    media
0    misc
82M    mnt
0    net
8.0K    opt
du: cannot access `proc/26758/task/26758/fd/4': No such file or directory
du: cannot access `proc/26758/task/26758/fdinfo/4': No such file or directory
du: cannot access `proc/26758/fd/4': No such file or directory
du: cannot access `proc/26758/fdinfo/4': No such file or directory
0    proc
11G    root
17M    sbin
4.0K    selinux
12M    Serveragent
4.0K    srv
0    sys
0    thread.dump
3.2M    tmp
1.7G    usr
235M    var
[root@i-3E5C86C8 /]# 

  依此类推,可以找到一些无用的大文件进行删除,删除后发现磁盘空间未释放,使用命令:lsof | grep delete

[root@i-3E5C86C8 cloud]# lsof | grep delete
java       2873      root    1w      REG              252,3 6392907748    1575685 /home/cloud/test/nohup.out (deleted)
java       2873      root    2w      REG              252,3 6392907748    1575685 /home/cloud/test/nohup.out (deleted)
java       2873      root   53u      REG              252,3          0    1704161 /home/cloud/test/file:/home/cloud/test/test.jar!/BOOT-INF/classes!/flume/run/data/in_use.lock (deleted)
java       2873      root  185r      REG              252,3 1623704364    1704176 /home/cloud/test/file:/home/cloud/test/test.jar!/BOOT-INF/classes!/flume/run/data/log-14 (deleted)
java       2873      root  187u      REG              252,3 1147833050    1704194 /home/cloud/test/file:/home/cloud/test/test.jar!/BOOT-INF/classes!/flume/run/data/log-15 (deleted)
java       2873      root  262r      REG              252,3 1147833050    1704194 /home/cloud/test/file:/home/cloud/test/test.jar!/BOOT-INF/classes!/flume/run/data/log-15 (deleted)
[root@i-3E5C86C8 cloud]# 

  找到相应的进程号,删除即可。

命令:kill -9 pid