一、查找上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
Tags: ,
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]