Bash之定时备份归档检验并删除
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bash之定时备份归档检验并删除相关的知识,希望对你有一定的参考价值。
一、介绍
生产线上有一台bi ftp服务器(用来接受游戏的数据),每个游戏按指定格式上传到以年月日的目录中,如:20170628 这样的目录,每天一个目录,因此数据日积月累导致inode和磁盘空间不断的被消耗,另外有的项目下线,因此这些都需要把这些数据打包归档起来以节省空间;
二、解决方案
使用Bash写了一个小工具只需要填写指定目录,多长日期之前的 两项运行工具,即可对指定目录下指定时间以前的数据进行打包,并在检验打包好后,删除原备份目录。以下是代码:
#!/bin/bash rootdir=/data1/games/zgws #需要归档整理的目录 declare -i Ago=20170301 #指定日期前 cd $rootdir for d in $(ls): do if [ ! -d $d ]; then continue else set -i $d if [ $d -le $Ago ] then echo $d tar czvf ${d}.tar.gz $d declare -i tarhow=$(tar tvf ${d}.tar.gz |wc -l) #检验归档后的文件个数 declare -i srchow=$(ls $d |wc -l) #原目录中文件个数 let tarhow=($tarhow -1) if [ $tarhow -eq $srchow ] then echo "$d tar OK,$d has $srchow files,and belong tared has $tarhow ,time at: $(date +%F-%H-%M-%S)" >>tarlog.log #保存检验日志 rm -r $d else echo "$d tar failed!" break fi fi fi done
三、使用中用到的问题
可以修改做成定期去执行,主要就是日期问题,但不建议,另外主要是通过目录统一“年月日”格式,其他的不行,要归档的目录中不可以有隐藏文件及.开头的文件,否则会产生检验不通过。
本程序仅供参考,和个人备忘,如有不当之处欢迎指正!
本文出自 “學地止境” 博客,请务必保留此出处http://dyc2005.blog.51cto.com/270872/1942717
以上是关于Bash之定时备份归档检验并删除的主要内容,如果未能解决你的问题,请参考以下文章
Oracle数据库从RMAN备份集片段还原指定单个归档日志进行日志挖掘分析
商城系统在linux系统中定时备份MySQL数据库并删除七天前的备份文件