df -Th查看磁盘空间占用情况

[root@IntelRC-Nginx-N023 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 40G 35G 5.4G 87% /
devtmpfs devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs tmpfs 3.9G 56K 3.9G 1% /dev/shm
tmpfs tmpfs 3.9G 427M 3.4G 11% /run
tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/vda1 xfs 509M 156M 354M 31% /boot
/dev/mapper/vm_data-lv_data xfs 300G 30G 271G 10% /opt/data
tmpfs tmpfs 779M 0 779M 0% /run/user/0

使用du -sh /* |sort -nr查看那个目录占用空间大

[root@IntelRC-Nginx-N023 ~]# du -sh /* |sort -nr
du: cannot access ‘/proc/256532/task/256532/fd/4’: No such file or directory
du: cannot access ‘/proc/256532/task/256532/fdinfo/4’: No such file or directory
du: cannot access ‘/proc/256532/fd/4’: No such file or directory
du: cannot access ‘/proc/256532/fdinfo/4’: No such file or directory
395M /run
319M /home
130M /boot
120M /etc
74M /root
56K /dev
33G /var
30G /opt
20M /tmp
1.5G /usr
0 /sys
0 /srv
0 /sbin
0 /proc
0 /mnt
0 /media
0 /lib64
0 /lib
0 /data
0 /bin

进一步目录排查

然后那个目录占用多 再通过du -s /root/* | sort -nr 一层层排查,找到占用文件多的地方

[root@IntelRC-Nginx-N023 ~]# du -sh /var/* |sort -nr
425M /var/opt
245M /var/cache
64M /var/lib
29G /var/adm
16K /var/spool
16K /var/data
8.0K /var/db
3.8G /var/log
0 /var/yp
0 /var/tmp
0 /var/run
0 /var/preserve
0 /var/nis
0 /var/mail
0 /var/lock
0 /var/local
0 /var/kerberos
0 /var/gopher
0 /var/games
0 /var/empty
0 /var/crash [root@IntelRC-Nginx-N023 ~]# du -sh /var/adm/ |sort -nr
29G /var/adm/

快速删除大量文件

假如你要在linux下删除大量文件,比如100万、1000万,像/var/spool/clientmqueue/的mail邮件,/usr/local/nginx/proxy_temp的nginx缓存等,那么rm -rf *可能就不好使了。 rsync 可以用来清空目录或文件,如下:

做删除操作前,确认下你要删除那个文件的权限,属主属组, 最好从固态硬盘copy到机械硬盘上留备份

# 1. 先建立一个空目录
mkdir /data/blank # 2. rsync删除目标目录
rsync --delete-before -d /data/blank/ /var/adm/
# --delete-before 接收者在传输之前进行删除操作 # 这样目标目录很快就被清空了

为什么rsync能快速删除大文件?

1)rm命令大量调用了lstat64和unlink,可以推测删除每个文件前都从文件系统中做过一次lstat操作。过程:正式删除工作的第一阶段,需要通过getdirentries64调用,分批读取目录(每次大约为4K),在内存中建立rm的文件列表;第二阶段,lstat64确定所有文件的状态;第三阶段,通过unlink执行实际删除。这三个阶段都有比较多的系统调用和文件系统操作。

2)rsync所做的系统调用很少:没有针对单个文件做lstat和unlink操作。命令执行前期,rsync开启了一片共享内存,通过mmap方式加载目录信息。只做目录同步,不需要针对单个文件做unlink。另外,在其他人的评测里,rm的上下文切换比较多,会造成System CPU占用较多——对于文件系统的操作,简单增加并发数并不总能提升操作速度。 总结:频繁做减法不如直接从头来过把文件系统的目录与书籍的目录做类比,rm删除内容时,将目录的每一个条目逐个删除(unlink),需要循环重复操作很多次;rsync删除内容时,建立好新的空目录,替换掉老目录,基本没开销。

rm删除内容时,将目录的每一个条目逐个删除(unlink),需要循环重复操作很多次;rsync删除内容时,建立好新的空目录,替换掉老目录,基本没开销

rsync与rm删除速度比较
# 在一台主机上创建5万个空文件后再分别用rsync和rm 进行清理,以下是测试结果

[root@www data1]# mkdir -p /tmp/empty/
[root@www data1]# mkdir 361way;seq 1 50000 | xargs -I{} touch 361way/file_{}
[root@www data1]# time rsync --delete -rlptD /tmp/empty/ /data1/361way/
real 0m0.149s
user 0m0.018s
sys 0m0.091s
[root@www data1]# seq 1 50000 | xargs -I{} touch 361way/file_{}
[root@www data1]# time rm -rf 361way/*
real 0m0.831s
user 0m0.366s
sys 0m0.464s

杀掉占用文件进程

如果以上方法没找到问题所在,那么可以使用以下命令, 看看是否删除掉的文件仍然被进程占用而没有进行实际删除

lsof |grep deleted
zabbix_ag 945 zabbix 1w REG 253,0 1277 10173518/var/log/zabbix/zabbix_agentd.log-20191229 (deleted)
zabbix_ag 945 zabbix 2w REG 253,0 1277 10173518/var/log/zabbix/zabbix_agentd.log-20191229 (deleted)
zabbix_ag 946 zabbix 1w REG 253,0 1277 10173518/var/log/zabbix/zabbix_agentd.log-20191229 (deleted)
zabbix_ag 946 zabbix 2w REG 253,0 1277 10173518/var/log/zabbix/zabbix_agentd.log-20191229 (deleted)
zabbix_ag 947 zabbix 1w REG 253,0 1277 10173518/var/log/zabbix/zabbix_agentd.log-20191229 (deleted)
zabbix_ag 947 zabbix 2w REG 253,0 1277 10173518/var/log/zabbix/zabbix_agentd.log-20191229 (deleted)
zabbix_ag 948 zabbix 1w REG 253,0 1277 10173518/var/log/zabbix/zabbix_agentd.log-20191229 (deleted)
zabbix_ag 948 zabbix 2w REG 253,0 1277 10173518/var/log/zabbix/zabbix_agentd.log-20191229 (deleted)
zabbix_ag 949 zabbix 1w REG 253,0 1277 10173518/var/log/zabbix/zabbix_agentd.log-20191229 (deleted)
zabbix_ag 949 zabbix 2w REG 253,0 1277 10173518/var/log/zabbix/zabbix_agentd.log-20191229 (deleted)
zabbix_ag 950 zabbix 1w REG

linux磁盘已满,查看那个目录文件最占磁盘空间并解决没有内存不耗费资源删除的更多相关文章

  1. linux下通过acl配置灵活目录文件权限(可用于ftp,web服务器的用户权限控制)

    linux下通过acl配置灵活目录文件权限(可用于ftp,web服务器的用户权限控制) 发表于2012//07由feng linux 本身的ugo rwx的权限,对于精确的权限控制很是力不从心的,ac ...

  2. linux磁盘已满,查看哪个文件占用多

    1.使用df -h查看磁盘空间占用情况 2.使用sudo du -s -h /* | sort -nr命令查看那个目录占用空间大 3.然后那个目录占用多 再通过sudo du -s -h /var/* ...

  3. linux inode已满解决方法

    今天login server的一个网站,发现login后没有生成session.根据以往经验,一般是空间已满导致session文件生成失败. df -h Filesystem Size Used Av ...

  4. ***Linux系统下如何查看及修改文件读写权限

    查看文件权限的语句: 在终端输入:ls -l xxx.xxx (xxx.xxx是文件名) 那么就会出现相类似的信息,主要都是这些:-rw-rw-r-- 一共有10位数 其中: 最前面那个 - 代表的是 ...

  5. [转]Linux系统下如何查看及修改文件读写权限

    转自 :http://www.cnblogs.com/CgenJ/archive/2011/07/28/2119454.html 查看文件权限的语句: 在终端输入:ls -l xxx.xxx (xxx ...

  6. linux磁盘已满,文件占用情况

    du -sh /data0/* 如上,/data0/* 表示查看data0文件夹下各个目录的磁盘占用情况 df -h 查看总的磁盘占比

  7. Linux命令(十四) 查看工作目录文件 ls

    目录 1.命令简介 2.常用参数介绍 3.实例 4.直达底部 命令简介 ls 命令是 Linux 下最常用的命令. ls 就是 list 的缩写.默认情况下 ls 命令用来打印出当前目录的清单, 如果 ...

  8. linux下不解包查看tar包文件内容

    为减少日志文件占用的空间,很多情况下我们会将日志文件以天或周为周期打包成tar.gz 包保存.虽然这样做有利空间充分利用,但当我们想查看压缩包内的内容时确很不方便.如果只是一个tar.gz文件,可以将 ...

  9. SQL Server 事务日志文件已满,收缩日志文件(9002)

    错误如下图: 1.数据库 → 属性 → 选项 → 恢复模式 → 选择‘简单’:如下图: 2.任务 → 收缩 → 文件类型‘文件’ → 收缩模式‘在释放未使用的空间前重新组织页’,将文件收缩到K,大小填 ...

随机推荐

  1. Python3基础——递归

    递归函数 如果一个函数在内部调用自身本身,这个函数就是递归函数. 递归函数的优点是定义简单,逻辑清晰.理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰. 使用递归函数需要注意防止栈 ...

  2. Azure内容审查器之羞羞图审查

    上一篇 Azure 内容审查器之文本审查我们已经介绍了如果使用Azure进行文字内容的审核.对于社区内容,上传的图片是否含有羞羞内容也是需要过虑的.但是最为一般开发者自己很难实现这种级别的智能识别.但 ...

  3. 从实体框架核心开始:构建一个ASP。NET Core应用程序与Web API和代码优先开发

    下载StudentApplication.Web.zip - 599.5 KB 下载StudentApplication.API.zip - 11.5 KB 介绍 在上一篇文章中,我们了解了实体框架的 ...

  4. 《流畅的Python》第三部分 把函数视作对象 【一等函数】【使用一等函数实现设计模式】【函数装饰器和闭包】

    第三部分 第5章 一等函数 一等对象 在运行时创建 能赋值给变量或数据结构中的元素 能作为参数传递给函数 能作为函数的返回结果 在Python中,所有函数都是一等对象 函数是对象 函数本身是 func ...

  5. Azure Media Player Logo隐藏和 视频字幕样式

    <style type="text/css"> /**hide mediaplayer logo*/ .amp-default-skin .amp-content-ti ...

  6. 52.Qt-Charts动态显示多条折线电压值(实现示波器效果)

    Qt 5.7过后Qt添加了官方的Chart库,之前就用的比较习惯,这次把源码发出来,给入门的同学们参考参考. 效果如下所示: 1.chartsView.h如下所示: #ifndef VIEW_H #d ...

  7. 在实际开发中Java中enum的用法

    在日常项目的开发中,往往会存在一些固定的值,而且"数据集"中的元素是有限的. 例如:st_code// 一些状态机制:01-激活  02-未激活  03 -注册..等等 还有一特性 ...

  8. 基于python实现链式队列代码

    """ 链式存储-队列 linkqueue.py 代码实现 思路: 1.入队, 2.出队, 3.判断空满 """ # 异常类 class Q ...

  9. selenium元素定位学习笔记

    一,定位原则 稳定 简单灵活 唯一 WebDriver提供了两种方式来定位页面元素,分别是find_element_by_XXX和find_elements_by_XXX.第一种方式的结果是在正常情况 ...

  10. AT一万亿港元市值之差,腾讯和阿里到底“差”在哪里?

    很少有人注意到,港股之王已经悄然易主. 2019年底,阿里巴巴赴港二次上市,中国两大互联网巨头终于有了统一的比较口径,同台竞技之下,我们发现一个惊人事实--截止9月5日,港股阿里巴巴市值5.9万亿港元 ...