Linux命令-df

场景: df -h查看磁盘信息

/dev/mapper/rl-root 96%

du -h --max-depth=1 命令代表寻找当前目录,哪个文件夹占用空间最大,进入根目录:

[root@localhost ~]#cd /
[root@localhost /]# du -h --max-depth=1
    
或者一步执行:
[root@lanshan ~]#cd / && du -h --max-depth=1

注意事项:

由于df是计算的进程占用空间,du -h 计算的实际文件占用空间,所以会导致以下情况发生
如果删除了文件,但是磁盘空间还是没有释放,那是进程还在导致的。可以通过以下操作
lsof -n |grep deleted找到占用内存最大的,并且确定不用的可以用kill -9 pid 删除pid为对应的进程号

lsof 命令用法:查看已删除空间却没有释放的进, 在终端中直接执行 lsof 命令,如下所示:

[root@localhost ~]# lsof
COMMAND     PID   TID           USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
systemd       1                 root  cwd       DIR              253,0       236         64 /
systemd       1                 root  rtd       DIR              253,0       236         64 /
systemd       1                 root  txt       REG              253,0   1616360   67485964 /usr/lib/systemd/systemd
systemd       1                 root  mem       REG              253,0     20112   33750391 /usr/lib64/libuuid.so.1.3.0
systemd       1                 root  mem       REG              253,0    265624   33750457 /usr/lib64/libblkid.so.1.1.0
systemd       1                 root  mem       REG              253,0     90248   33628492 /usr/lib64/libz.so.1.2.7
systemd       1                 root  mem       REG              253,0    157424   33750414 /usr/lib64/liblzma.so.5.2.2
systemd       1                 root  mem       REG              253,0     23968   33750402 /usr/lib64/libcap-ng.so.0.0.0
systemd       1                 root  mem       REG              253,0     19896   33750102 /usr/lib64/libattr.so.1.1.0
systemd       1                 root  mem       REG              253,0     19248   33591164 /usr/lib64/libdl-2.17.so
systemd       1                 root  mem       REG              253,0    402384   33750139 /usr/lib64/libpcre.so.1.2.0
……
……
    
其中,每列参数的含义如下:

1. COMMAND : 命令名称;

2. PID : 进程ID;

3. TID : 线程ID,如果为空代表列出的是进程;

4. TASKCMD : 任务名称,通常与 COMMAND 相同;

5. USER : 用户ID号或登录名;

6. FD : 文件描述符;

7. TYPE : 与文件关联结点的类型;

8. DEVICE : 设备号;

9. SIZE/OFF : 文件大小/偏移量,以字节为单位;

10. NODE : 文件结点;

11. NAME : 文件挂载点和文件所在的系统;

查看已经删除的文件,空间有没有释放,没有的话kill掉pid

lsof -n |grep deleted

查看根路径 lsof -n / | grep deleted 可以看看空间占用情况
问题描述:
服务报警root分区使用率超过95%,上来查看发现96%使用率;
但是/分区下面的目录,每个查询加起来也不到4G空间,多出来的40G不知道在哪里?
find查询也没有找到大文件;

分析原因:

可能是系统进程占用的空间没有释放掉,导致的;通过命令查看发现,进程一共有3个,都是处于deleted状态,文件大小刚好是40G,正好是多出来的空间.

解决办法:
找到对应的进程号,kill掉即可;

[root@localhost]# lsof -n / |grep deleted
mysqld    2660  mysql    4u  REG    8,2          0  524290 /tmp/ibSF7sXt (deleted)
mysqld    2660  mysql    5u  REG    8,2          0  524305 /tmp/ibCCM4u4 (deleted)
mysqld    2660  mysql    6u  REG    8,2          0  524309 /tmp/ibKuAG2E (deleted)
mysqld    2660  mysql    7u  REG    8,2          0  524315 /tmp/ibcLe4Bf (deleted)
mysqld    2660  mysql  11u  REG    8,2          0  524316 /tmp/ibW2n1iQ (deleted)
php        7045    root    0r  REG    8,2        1172  524374 /tmp/sh-thd-1494029191 (deleted)
php        7045    root    2w  REG    8,2 42413952626  657428 /var/spool/at/spool/a0100c017bf37c (deleted)
php        7054    root    0r  REG    8,2        1172  524374 /tmp/sh-thd-1494029191 (deleted)
php        7054    root    2w  REG    8,2 42413952626  657428 /var/spool/at/spool/a0100c017bf37c (deleted)
php      12730    root    0r  REG    8,2        1172  524374 /tmp/sh-thd-1494029191 (deleted)
php      12730    root    2w  REG    8,2 42413952626  657428 /var/spool/at/spool/a0100c017bf37c (deleted)
mysqld    17855  mysql    4u  REG    8,2          0  524384 /tmp/ibxBS5jf (deleted)
mysqld    17855  mysql    5u  REG    8,2          0  524385 /tmp/ibmrNzfL (deleted)
mysqld    17855  mysql    6u  REG    8,2          0  524386 /tmp/ibVDS3ah (deleted)
mysqld    17855  mysql    7u  REG    8,2          0  524387 /tmp/ibx6YTrj (deleted)
mysqld    17855  mysql  13u  REG    8,2          0  524388 /tmp/ibOhb8xQ (deleted)

在对应的目录下并没有发现文件

[root@localhost]# ll /var/spool/at/spool/
总用量 0
[root@localhost]# kill -9 7045
[root@localhost]# kill -9 7054
[root@localhost]# kill -9 12730

再次查看发现没有php的进程

[root@localhost]# lsof -n / |grep deleted
mysqld    2660  mysql    4u  REG    8,2        0  524290 /tmp/ibSF7sXt (deleted)
mysqld    2660  mysql    5u  REG    8,2        0  524305 /tmp/ibCCM4u4 (deleted)
mysqld    2660  mysql    6u  REG    8,2        0  524309 /tmp/ibKuAG2E (deleted)
mysqld    2660  mysql    7u  REG    8,2        0  524315 /tmp/ibcLe4Bf (deleted)
mysqld    2660  mysql  11u  REG    8,2        0  524316 /tmp/ibW2n1iQ (deleted)
mysqld    17855  mysql    4u  REG    8,2        0  524384 /tmp/ibxBS5jf (deleted)
mysqld    17855  mysql    5u  REG    8,2        0  524385 /tmp/ibmrNzfL (deleted)
mysqld    17855  mysql    6u  REG    8,2        0  524386 /tmp/ibVDS3ah (deleted)
mysqld    17855  mysql    7u  REG    8,2        0  524387 /tmp/ibx6YTrj (deleted)
mysqld    17855  mysql  13u  REG    8,2        0  524388 /tmp/ibOhb8xQ (deleted)

查看空间已经恢复:

[root@localhost ]# df -h
文件系统      容量  已用  可用 已用%% 挂载点
/dev/sda2      49G  4.4G  42G  10%  /
tmpfs        16G    0  16G  0% /dev/shm
posted @ 2023-02-15 16:55  忘崽牛仔  阅读(146)  评论(0编辑  收藏  举报