Linux下自动清理超过指定大小文件
作者:邓聪聪
扫描某个目录下的文件,发现超过指定大小即清空
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/.txt bs=1M count=
[root@admin test]# dd if=/dev/zero of=/root/test/.txt bs=1M count=
+ records in
+ records out
bytes ( MB) copied, 0.0202923 s, 1.0 GB/s
[root@admin test]# ll
-rw-r--r-- root root Nov : .txt
[root@admin test]# du -sh .txt
20M .txt
处理脚本:
#!/bin/bash
for 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
done
done
结合crontab进行定时执行
[root@admin test]# chmod scan_gt_20.sh
[root@admin test]# /bin/bash -x scan_gt_20.sh
[root@admin test]# crontab -e
* * /bin/bash -x /root/test/scan_gt_20.sh > /dev/null >&
方法2
"find -size" -size 选项用于查找满足指定的大小条件的文件(注意不查找目录), +表示大于, -表示小于, 没有+或-表示正好等于。
可以使用dd命令创建一个20M的文件,测试下:
[root@admin test]# dd if=/dev/zero of=/root/test/.txt bs=1M count=
+ records in
+ records out
bytes ( MB) copied, 0.0259113 s, MB/s
[root@admin test]# find ./ -type f -size +20M
./.txt
[root@admin test]#
处理脚本
[root@admin test]# vi scan_gt_20.sh
#!/bin/bash
for i in $(find /root/test/* -size +20M);
do
echo " " > $i;
done
[root@admin test]# crontab -e
* * /bin/bash -x /root/test/scan_gt_20.sh > /dev/null >&
Linux下自动清理超过指定大小文件的更多相关文章
- Linux下自动清理超过指定大小文件的方法
由于线上业务用的squid,根据经验值如果长时间运行则缓存目录下的swap.state会慢慢变大,一旦超过60M,squid的性能就会急剧下降,因此需要定时去清理大于60M的swap.state文件. ...
- Linux下面自动清理超过指定大小的文件
Linux下面自动清理超过指定大小的文件 思路:1)查找test目录下的所有的文件2)判断是否大于100M3)大于100M则清空 以byte为单位显示文件大小,然后和100M大小做对比. 100M换算 ...
- Linux中定时删除超过指定大小的文件夹
背景: 开发环境总是动不动就没有空间了, 大部分都是debug日志.所以有必要在日志很疯狂的时候,删除不必要的日志. 思路:一. 书写删除日志文件脚本: 定时任务执行. 但是有时候的日志是需要保存用 ...
- Linux下自动备份Oracle数据库并删除指定天数前的备份
说明: Oracle数据库服务器 操作系统:CentOS IP:192.168.0.198 端口:1521 SID:orcl Oracle数据库版本:Oracle11gR2 具体操作: 1.root用 ...
- Linux下自动清除MySQL日志文件
MySQL运行过程中会生成大量的日志文件,占用不少空间,修改my.cnf文件配置bin-log过期时间,在Linux下自动清除MySQL日志文件 [mysqld] expire-logs-days= ...
- linux磁盘清理方法 Linux 下垃圾清理工具 BleachBit
由于当初安装系统设计不合理,有些分区的过小,以及网络通讯故障等造成日志文件速度增长等其他原因都可以表现为磁盘空间满,造成无法读写磁盘,应用程序无法执行等.下面就给你支几招(以/home空间满为例): ...
- linux下通过acl配置灵活目录文件权限(可用于ftp,web服务器的用户权限控制)
linux下通过acl配置灵活目录文件权限(可用于ftp,web服务器的用户权限控制) 发表于2012//07由feng linux 本身的ugo rwx的权限,对于精确的权限控制很是力不从心的,ac ...
- Linux下自动备份MySQL数据库并上传到远程FTP服务器
Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本 说明: 1.备份MySQL数据库存放目录/var/lib/mysql下面的xshelldata数据库 ...
- 【java】 linux下利用nohup后台运行jar文件包程序
Linux 运行jar包命令如下: 方式一: java -jar XXX.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 ...
随机推荐
- jdk7 并行计算框架Fork/Join
故名思义,拆分fork+合并join.jdk1.7整合Fork/Join,性能上有大大提升. 思想:充分利用多核CPU把计算拆分成多个子任务,并行计算,提高CPU利用率大大减少运算时间.有点像,Map ...
- hdfs.DataStreamer: Exception in createBlockOutputStream
在上传文件至 HDFS 提示如下信息 [root@h136 jdk1.8.0_202]# hadoop fs -put javafx-src.zip / 19/04/11 23:19:36 INFO ...
- ifconfig: command not found(CentOS 7,其他的可以参考)
ifconfig: command not found 查看path配置(echo相当于c中的printf,C#中的Console.WriteLine) 1 echo $PATH 解决方案1:先看看是 ...
- adb.exe已停止工作
提示adb.exe错误,我电脑上没有安装豌豆荚,也没运行其它应用,最后发现是360杀毒软件导致的,进程中关掉360Mobile即可.
- MobX响应式编程库
MobX https://mobx.js.org/ https://github.com/mobxjs/mobx MobX is a battle tested library that makes ...
- 【python小练】0020
第 0020 题: 登陆中国联通网上营业厅 后选择「自助服务」 --> 「详单查询」,然后选择你要查询的时间段,点击「查询」按钮,查询结果页面的最下方,点击「导出」,就会生成类似于 2014年1 ...
- [SYSS-2018-033]: Fujitsu Wireless Keyboard Set LX901 - Keystroke Injection Vulnerability
风险简介: [SYSS-2018-033]:富士通无线键盘组LX901 -击键注入漏洞 风险报告ID: sys - 2018 - 033 产品:无线键盘套件LX901 制造商:富士通 受影响版本:型号 ...
- bean的实例化方式
spring中bean的实例化方式有三种,1.构造器实例化,2.实例工厂实例化,3.静态工厂实例化 1.构造器实例化方式 public class bean1 { public bean1() { } ...
- 第25月第17天 django rest framwork authentication /tmp/mysql.sock
1.authentication https://www.django-rest-framework.org/api-guide/authentication/#authentication 2.dj ...
- vue框架导入百度地图API接口的方法
百度请求API接口: