博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux下自动清理超过指定大小文件
阅读量:5375 次
发布时间:2019-06-15

本文共 1674 字,大约阅读时间需要 5 分钟。

作者:邓聪聪

  扫描某个目录下的文件,发现超过指定大小即清空

1)扫描目录下的文件

2)判断文件大小

3)清空大于指定文件的内容

  以byte为单位显示文件大小,然后和20M大小做对比. 20M换算成字节为20971520这里判断是否大于20M,大于则使用echo 语句将对应文件置空

  20M=20 * 1024 * 1024=20971520    echo `expr 20 \* 1024 \* 1024`

方法1 

可以使用dd命令创建一个20M的文件,测试下:

dd if=/dev/zero of=/root/test/1.txt bs=1M count=20[root@admin test]# dd if=/dev/zero of=/root/test/1.txt bs=1M count=2020+0 records in20+0 records out20971520 bytes (21 MB) copied, 0.0202923 s, 1.0 GB/s[root@admin test]# ll-rw-r--r--  1 root root 20971520 Nov 13 10:13 1.txt[root@admin test]# du -sh 1.txt 20M     1.txt

处理脚本:

#!/bin/bashfor size in $(ls -l /root/test/* |awk '{print $5}')do        for file in $(ls -l /root/test/* | grep $size |awk '{print $9}')        do                if [ ${size} -gt 62914560 ];then                echo ${file} ${size}                echo "" > ${file}                fi        donedone

结合crontab进行定时执行

[root@admin test]# chmod 755 scan_gt_20.sh [root@admin test]# /bin/bash -x scan_gt_20.sh [root@admin test]# crontab -e0 2 * * 6 /bin/bash -x /root/test/scan_gt_20.sh > /dev/null 2>&1

方法2

"find -size"  -size 选项用于查找满足指定的大小条件的文件(注意不查找目录), +表示大于, -表示小于, 没有+或-表示正好等于。

可以使用dd命令创建一个20M的文件,测试下:

[root@admin test]# dd if=/dev/zero of=/root/test/1.txt bs=1M count=2121+0 records in21+0 records out22020096 bytes (22 MB) copied, 0.0259113 s, 850 MB/s[root@admin test]# find ./ -type f -size +20M                        ./1.txt[root@admin test]#

 处理脚本

[root@admin test]# vi scan_gt_20.sh#!/bin/bashfor i in $(find /root/test/* -size +20M);do   echo " " > $i;done
[root@admin test]# crontab -e0 2 * * 6 /bin/bash -x /root/test/scan_gt_20.sh > /dev/null 2>&1

 

转载于:https://www.cnblogs.com/dengcongcong/p/9950929.html

你可能感兴趣的文章
Windows资源管理器打开文件夹卡顿原因及解决办法
查看>>
linux中fork()函数详解
查看>>
Spring框架基础(中)
查看>>
java文件的读写程序代码
查看>>
NOIP200703守望者的逃离
查看>>
SmbException: 0xC000007F
查看>>
UVA 12627 气球胀啊胀
查看>>
Apache 的ab压力测试工具
查看>>
linux进程状态D
查看>>
256.Paint House
查看>>
Java7中的文件和目录管理----Path类
查看>>
tarjan算法(割点/割边/点连通分量/边连通分量/强连通分量)
查看>>
windows下通过navicat for mysql连接centos6.3-64bit下的MySQL数据库
查看>>
创建单例
查看>>
Linux shell脚本编程基础之练习篇
查看>>
maven web项目build失败
查看>>
常用在线小工具
查看>>
canvas
查看>>
F2BPM流程中心RESTfull解决方案及示例
查看>>
关于Activiti的工作流选型
查看>>