shell脚本实现自动保留最近n次备份记录
来源:互联网 发布:经纬度换算坐标软件 编辑:程序博客网 时间:2024/05/16 07:44
项目中出现的问题
某天上午服务器出现卡顿特别严重,页面加载速度奇慢,并且某些页面刷新出现404的问题,就连服务器的tab命令的自动提示都出现了问题,楼主费了九牛二虎之力,根据服务器排查发现,服务器数据盘出现100%被占用的问题,导致该问题出现的原因是,Jenkins每次部署服务器的时候,都会自动将上一次的war备份,由于开发阶段的频繁部署,最终硬盘被占满,便出现上述描述的情况。
解决方案的实现过程
获取备份文件夹下的所有文件
根据Google爸爸的提示,楼主找到了下面的命令,
find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;
实例命令:
find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;
说明:
将/opt/soft/log/目录下所有30天前带”.log”的文件删除。
具体参数说明如下:
find:linux的查找命令,用户查找指定条件的文件;
/opt/soft/log/:想要进行清理的任意目录;
-mtime:标准语句写法;
+30:查找30天前的文件,这里用数字代表天数;
” ×.log”:希望查找的数据类型,”×.jpg”表示查找扩展名为jpg的所有文件,”×”表示查找所有文件,这个可以灵活运用,举一反三;
-exec:固定写法;
rm -rf:强制删除文件,包括目录;
{} \; :固定写法,一对大括号+空格++;
解决问题的思路:
当然楼主当然不能傻乎乎的将备份目录下的所有文件都删除掉,这样的话,备份不就失去了意义。
所以换一下思路便有了下面的命令
find ${BAK_HOME} -mtime +1 -name "*:*" | wc -l
说明:
获取备份目录下所有一天前带”:”的所有文件数量。
find ${BAK_HOME} -mtime +1 -name "*:*"
说明:
获取备份目录下所有一天前带”:”的所有文件数量。
到了这里我们的问题差不多就可以解决了。so,请接着往下看:
解决方案的思路及shell脚本的实现
思路
目前解决该问题的方法是在原来部署脚本中添加一段脚本,实现保留最近10次部署的备份记录,超过10次的备份记录将被删除.
shell脚本的实现
逻辑很清晰,思路很明了,我就不在这里接着阐述了,谢谢大家!
#!/bin/shBAK_HOME="/home/saveHistoryData/iam-share-8083"keepNum=5fileNum=$(find ${BAK_HOME} -mtime +1 -name "*:*" | wc -l)echo "${fileNum}"for file in $(find ${BAK_HOME} -mtime +1 -name "*:*"); do if test $[fileNum] -gt $[keepNum];then rm -rf ${file} fileNum=${fileNum}-1 echo "delete backup file" else echo "do no thing" fidone
- shell脚本实现自动保留最近n次备份记录
- 可保留最近5次备份的数据备份脚本
- 可保留最近5次备份的数据备份脚本
- shell脚本实现ftp自动备份
- 实现连续N次备份数据库的脚本
- mysql数据库自动备份 保留最近5天备份
- MySQL自动备份和手工恢复(可实现定时备份、保留最近7天、异地备份)
- 写LINUX shell脚本 自动备份ORACLE用户下的表 保留30天数据
- mysqldump自动备份shell脚本
- Shell脚本 实现vi/cp/mv前自动备份源文件
- shell实现ftp自动备份
- Mysql 数据库自动备份Shell脚本
- linux下mysql自动备份shell脚本
- linux下mysql自动备份shell脚本 .
- 自动备份mysql数据库 shell脚本
- shell脚本自动备份MySQL数据库
- Mysql 数据库自动备份Shell脚本
- Linux 自动备份MySQL数据库shell脚本
- Java日期类
- QT模拟鼠标事件
- java入门之面向对象4
- xml解析之dom解析
- MYSQL
- shell脚本实现自动保留最近n次备份记录
- [HAOI2006]受欢迎的牛 Tarjan缩点
- windows下创建ftp服务
- Sqoop将MySQL中数据导入到Hive表中
- box-shadow在ios下没有显示
- Android驱动入门-Led控制+app+ndk库+底层驱动
- 10G 个整数,乱序排列,要求找出中位数,内存限制为 2G
- ML笔记-Introduction
- Git远程仓库(Github)