[实践OK]Linux 下的du命令结合awk通过du来扫描大于G的文件夹,新加所有文件上G的查找方法-from:scottjiang江庆海,外加上文件层级大小统计。

jackxiang 2011-5-12 12:48 | |
一、查找上G的文件:

列出上G并删除的命令,如果加上 |sh 就能删除掉:
find /data/logs/nginx -type f -name "*.log-*" |xargs -i du -lh {} |awk '{if(match($1, "G")>0) print $0}' |awk '{print "rm -Rf " $2}'

du -sh /data/logs/swoole/swoole.log
99G     /data/logs/swoole/swoole.log
上G的日志/data/logs/swoole/swoole.log清空即可:
find /data/logs/swoole -type f -name "*.log" |xargs -i du -lh {} |awk '{if(match($1, "G")>0) print $0}' |awk '{print "echo > " $2}'|sh


#定时清空swoole测试机上上G的文件
* 1 * * *  find /data/logs/swoole -type f -name "*.log" |xargs -i du -lh {} |awk '{if(match($1, "G")>0) print $0}' |awk '{print "echo > " $2}'|sh

二、查找上的G目录:


这样来查找:


示例Demo:
root@116.255.139.240:/data1/logs#     find . -name "*" |du -sh *|awk '{if(match($1, "G")>0) print $0 }'
5.0G    access.log



Linux中清理磁盘空间时,经常需要找出大于200M的文件。
这个命令可以实现这个功能:
find / -size +200M -exec du -h {} \;


http://blog.csdn.net/yfleng2002/article/details/8080556


三、文件夹大小的及层级统计:
du -h --max-depth=1 |grep 'G' |sort   #查看上G目录并排序
du -h --max-depth=0 user
--max-depth=n表示仅仅深入到第n层文件夹,此处设置为0,即表示不深入到子文件夹。

du -h --max-depth=1 /home/|grep [M] |sort     #查看上M目录并排序
21M     /home/jackx
32M     /home/
9.2M    /home/jackxiang

du -h --max-depth=1 |sort                            #查看当前目录下所有一级子目录文件夹大小 并排序
1.2G    .
12K     ./.ssh
16K     ./.gconfd
16K     ./js
45M     ./yucc
464K    ./s
48K     ./.gconf
48K     ./.subversion

参考:http://www.cnblogs.com/mfryf/p/3243211.html


awk match用法,上面是返回值作上G判断,还能正则,如下:
cat test
this is wang ,not wan

that is chen, not che

this is chen ,and wang ,not wan che
awk '{match($0,/.+is([^,]+).+not(.+)/,a);print a[1],a[2]}' test
wang   wan

chen  che

chen   wan che

来自:https://www.cnblogs.com/timeisbiggestboss/p/7242351.html

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/4299/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!

Tags: ,

最后编辑: jackxiang 编辑于2019-10-28 01:34
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]