统计磁盘上文件和inode的使用情况

查找磁盘使用率高于10%的分区

df -h | grep -v “Used”|sort -nr -k 5 -u|sed -e “s/%//g”| awk ‘$5>10 {print $1 “\t” $5}; $5<10 {exit};’

找出根目录中比较大的文件

排除挂载点/proc、/sys、/usr/*、/bin后,统计列出目录中大小排名前10名的目录

 du -k  -x --exclude="proc" --exclude="sys" --exclude="/usr/*" --exclude="/bin/*"  -S / | sort -nr -k 1 | head
211964  /home/jiang
87356   /var/adm/backup/rpmdb
82084   /var/lib/rpm
32336   /lib/firmware
31304   /etc/gconf/gconf.xml.schemas
26364   /etc/gconf/schemas
20188   /boot
15388   /root/.mozilla/firefox/ge5ma490.default
14152   /sbin
13936   /lib64

排除挂载点/proc、/sys、/usr/*、/bin后,统计列出目录和文件中大小排名前10名的目录

 du -k  -x --exclude="proc" --exclude="sys" --exclude="/usr/*" --exclude="/bin/*"  -S -a / | sort -nr -k 1 | head
211964  /home/jiang
120088  /home/jiang/kernel-source-3.0.101-63.1.src.rpm
91752   /home/jiang/kernel-source-3.0.101-108.87.1.x86_64.rpm
87356   /var/adm/backup/rpmdb
82084   /var/lib/rpm
64208   /var/lib/rpm/Packages
32336   /lib/firmware
31304   /etc/gconf/gconf.xml.schemas
26364   /etc/gconf/schemas
20188   /boot

du的参数:
-k 以1K为单位
-x 排除其他挂载点
–exclude 跳过一些不用搜索的目录,节约时间
-S 只统计每个目录中的文件大小,不包含子目录,这样如果某一个目录整体比较大,但是里面的每个文件都不大,也能被找到
-a 同时统计单个文件的大小

sort的参数:
-n 按数字比较大小
-r 反向排序(也就是从大到小排序)
-k 比较的关键字所在的列,我们比较第一列
-u 相同的行只输出第一行

找出已删除但是删除文件依然占用磁盘空间的文件和对应的进程

找到挂载点下,已删除但由于文件未关闭依旧占有磁盘空间的文件和对应的进程

lsof /mnt/lv1 | grep deleted
a.out   6636 root    3u   REG  254,0        0   12 /mnt/lv1/aaaa (deleted)

 其他命令:

# 找到目录及其子目录下的所有文件
ls  -A  -R  -1 /mnt

#统计/mnt目录下所占用的inode个数
ls  -A  -R  -1 /mnt | grep -v / | grep -v "^$" | wc -l

#另一种方式:统计一个目录下的文件数(inode占用数)
#1、先写一个脚本,内容如下:
total_inodes_of(){
total=0;
tmp_f=`mktemp tmp.XXXXXXXXXX`
find $1 -type d -fprint $tmp_f
while read -r line; do n_inode=`ls -1 $line | wc -l`; echo "$n_inode    $line"; total=$(($total + $n_inode)); done < $tmp_f
rm $tmp_f
echo "$total in all"
}
#2、使用方法如下:
total_inodes_of /dev
203    /dev
2    /dev/vg1
8    /dev/snd
1    /dev/snd/by-path
6    /dev/disk
1    /dev/disk/by-label
4    /dev/disk/by-uuid

#du命令统计目录下inode使用量
–inode 参数 显示目录占用的inode数量, 而不是数据块的大小,新版本的du命令才支持
#示例1:
du --inode  -S -s /dev
188     /dev
#示例2:
du --inode  -S -s /usr/lib64/firefox /usr/lib64/
17      /usr/lib64/firefox
1853    /usr/lib64/
#示例3:
du --inode  -S  /dev
3       /dev/vg1
2       /dev/snd/by-path
8       /dev/snd
2       /dev/vfio

对比ls的-f 和-U 参数

ls 的参数
-A 不包含. 和 …
-R 递归子目录执行ls
-1 每行只输出一个文件
-f 不排序,可节约运行过程中的内存使用量,相当于-aU
-U 不排序,也不包含.和…
-s 显示文件大小

-f与-U参数对比:

ls -f -1 -s /bin | head
total 5184
   0 .
   0 ..
   4 dnsdomainname
   4 domainname
  16 hostname
 120 netstat

ls -U -1 -s /bin | head
total 5184
   4 dnsdomainname
   4 domainname
  16 hostname
 120 netstats

使用ls -f 和-U 参数的脚本输出对比:

 

使用ls -f参数的脚本
jiang@linux-d4xo:~> total_inodes_of(){
> total=0;
> tmp_f=`mktemp tmp.XXXXXXXXXX`
> find $1 -mount -type d -fprint $tmp_f
> while read -r line; do n_inode=`ls -f -1 $line | wc -l`; echo "$n_inode    $line"; total=$(($total + $n_inode)); done < $tmp_f
> rm $tmp_f
> echo "$total in all"
> }
jiang@linux-d4xo:~> total_inodes_of /mnt
6    /mnt
2    /mnt/cdrom
2    /mnt/nfs-c-a
2    /mnt/nfs-c-b
2    /mnt/sdc1
14 in all

使用ls -U参数的脚本
jiang@linux-d4xo:~> total_inodes_of(){
> total=0;
> tmp_f=`mktemp tmp.XXXXXXXXXX`
> find $1 -type d -fprint $tmp_f
> while read -r line; do n_inode=`ls -U -1 $line | wc -l`; echo "$n_inode    $line"; total=$(($total + $n_inode)); done < $tmp_f
> rm $tmp_f
> echo "$total in all"
> }
jiang@linux-d4xo:~> total_inodes_of /mnt
4    /mnt
0    /mnt/cdrom
0    /mnt/nfs-c-a
0    /mnt/nfs-c-b
0    /mnt/sdc1
4 in all

使用du --inode输出结果
jiang@linux-d4xo:~> du --inode /mnt
1       /mnt/cdrom
1       /mnt/nfs-c-a
1       /mnt/nfs-c-b
1       /mnt/sdc1
5       /mnt

使用find和wc统计结果:
jiang@linux-d4xo:~> total_inodes_of(){
> total=0;
> tmp_f=`mktemp tmp.XXXXXXXXXX`
> find $1 -type d -fprint $tmp_f
> while read -r line; do n_inode=`ls -1 $line | wc -l`; echo "$n_inode    $line"; total=$(($total + $n_inode)); done < $tmp_f
> rm $tmp_f
> echo "$total in all"
> }
jiang@linux-d4xo:~> total_inodes_of /mnt
4    /mnt
0    /mnt/cdrom
0    /mnt/nfs-c-a
0    /mnt/nfs-c-b
0    /mnt/sdc1
4 in all

 

版权声明:
作者:WaterBear
链接:https://l-t.top/2323.html
来源:雷霆运维
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录