linux磁盘空间满了后怎么去判定哪个地方占了多大的空间并回收

概述

日常工作总会碰到磁盘满的情况,这时候我们需要去判定哪个地方占的存储比较多,看那些文件有没用,如果没用就可以删掉节省空间。下面大概写一下处理的一个过程。

1、使用df -h查看磁盘空间占用情况

 

2、使用du -s /* | sort -nr命令查看那个目录占用空间大

 

然后那个目录占用多 再通过du -s /root/* | sort -nr 一层层排查,找到占用文件多的地方。我之前发现的问题是tomcat日志文件二年的都没删过。有40g,后来找到log目录删除掉了。

3、使用du -h –max-depth=1查看当前目录下文件夹大小情况

du命令的英文全称是“Disk Usage”,即用于查看磁盘占用空间的意思。但是与df命令不同的是du命令是对文件和目录磁盘使用的空间的查看,而不是某个分区。

语法格式:du [参数] [文件]

常用参数:

-a 显示目录中所有文件大小
-k 以KB为单位显示文件大小
-m 以MB为单位显示文件大小
-g 以GB为单位显示文件大小
-h 以易读方式显示文件大小
-s 仅显示总计

 

4、查看文件是否被进程占用

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

 

找到占用文件很大的进程,停止进程。之后重新启动,就OK了。

一、du 命令

du [选项][文件]
du命令用来查看目录或文件所占用磁盘空间的大小。常用选项组合为:du -sh

1、du的功能:

  很明显,与df不同,它用来查看文件或目录所占用的磁盘空间的大小。

2、du常用的选项:

  -h:以人类可读的方式显示
  -a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小
  -s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小
  -c:显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和
  --apparent-size:显示目录或文件自身的大小
  -l :统计硬链接占用磁盘空间的大小
  -L:统计符号链接所指向的文件占用的磁盘空间大小

 

二、sort 命令

        sort -n -k2 -r

        其中:-n代表:以数字排序,k2代表:按第二列的值排序,r代表:逆序

三、scp命令

        cp 在本机复制文件,这个命令我们经常使用,但是跨机器复制cp就不行了,scp可以跨机器复制文件,示例:

scp -Crvp -l 1 test/ test@10.16.88.88:/usr/local
test/ 源文件 test@10.16.88.88:/us

参数解释:
-C(大写): 允许传输过程中压缩,可提高效率
-r: 递归传输整个目录 (如果传输的是文件则不需要整个参数)
-p: 保留源文件的修改时间和访问权限等
-l: limit限制传输带宽 kb/s,(-l 1)表示限制每秒1kb的传输效率
-v: 传输详情 (调试可以使用)

总结:

跨主机传输文件;
scp -P 端口号 源文件  用户名@IP地址:放到目标主机的那个位置
scp -P 22 nginx.tar.gz root@192.168.1.128:/tmp
跨主机传输目录:
scp -P 22 -r nginx root@192.168.1.128:/tmp/

四、rsync命令

yum -y install rsync  
#启动rsync服务
systemctl start rsyncd.service
systemctl enable rsyncd.service#检查是否已经成功启动
netstat -lnp|grep 873

rsync命令也可以实现跨机器复制,既然都有了scp,我们还需要用到rsync吗?当然有应用场景:
1.增量备份
2.在拷贝目录时,排除掉目录中的某些文件
这两个场景scp满足不了
示例:

rsync -arz --exclude 'logs' --bwlimit=1 test/ test@192.172.65.23:/usr/local/test
1
参数解释:
-r : 递归传输目录下所有文件
-a : 归档模式,保持所有文件属性
-z : 传输进行压缩处理
–exclude=PATTERN 指定排除不需要传输的文件模式
–exclude-from=FILE 排除FILE中指定模式的文件
–bwlimit :限制I/O带宽 K

区别
rsync默认是只拷贝有变动的文件,scp是全量拷贝,所有rsync很适合做增量备份。
scp是加密传输,rsync不是。

总结:

rsync -P 22 -r nginx root@192.168.1.130:/tmp/
 
 
 
 
posted @ 2023-09-29 14:17  CarterLee  阅读(237)  评论(0编辑  收藏  举报