[实践OK]Linux 下的du命令结合awk通过du来扫描大于G的文件夹,新加所有文件上G的查找方法-from:scottjiang江庆海,外加上文件层级大小统计。
Unix/LinuxC技术 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
列出上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