linux系列之-—08 磁盘空间查询&&解决“磁盘空间不足”的问题

一、linux 系统查看剩余空间大小

用两个命令df 、du结合,可以直观快速的定位哪个分区满了,大文件在哪个位置

  • 查看整台服务器的硬盘使用情况
    df -h
  • 查看当前目录下一级子文件和子目录占用的磁盘容量。
    du -lh --max-depth=1 :
#应用之 ---- Linux 系统查找大文件或目录的技巧

du -sh [dirname|filename]

//当前目录的大小:
du -sh .

//当前目录下个文件或目录的大小:
du -sh *

//显示前10个占用空间最大的文件或目录:
du -s * | sort -nr | head

//-s选项 对于指定目录,详细显示其下每个子目录或文件的大小

二、linux 系统删除文件或者目录

  • 删除文件:rm -f
    -i 删除前逐一询问确认。
    -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
    -r 将目录及以下之档案亦逐一删除。

  • 删除目录: rmdir /data/ 或者 rm -rf /data/

#应用之 ---- 删除指定目录下部分文件
#描述: 在/data/目录下有a.txt b.txt c.txt d.txt 四个文件,如何删除/data/目录下acd三个文件,保留b.txt

//方法1:
find /data/ -type f ! -name "b.txt"|xargs rm -f
//方法2:
find /data/ -type f ! -name "b.txt" -exec rm -f {} \;
//以上f表示文件类型,若是表示目录类型则是d

三、解决Linux系统 中 “磁盘空间不足" 的问题

如果发现 du 和 df 的结果之间有差别,那么可以直接检查第一项原因。否则从第二项原因开始检查

  1. 已删除文件被进程所占用
    -lsof | grep deleted

  2. Linux系统删日志

echo '=======删除7天前日志======='
find $CachePath/logs -mtime +7 -name "*.*" -exec rm -rf {} \;

echo '=======删除大于10G的日志======='
find $CachePath/logs -size +10G -name "*.*" -exec rm -rf {} \;
  1. 应用正在运行期间,服务器上的.out日志文件,使用 rm -rf 命令无法直接删除。用下面这个命令,将app.out日志文件替换为空字符串就行了
    echo "" > app.out
#应用之 ---- 

posted @ 2018-11-06 09:17  雨 燕  阅读(834)  评论(0编辑  收藏  举报