码迷,mamicode.com
首页 > 其他好文 > 详细

Bash之定时备份归档检验并删除

时间:2017-06-28 19:05:38      阅读:127      评论:0      收藏:0      [点我收藏+]

标签: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之定时备份归档检验并删除

标签:bash自动指定日备份检验

原文地址:http://dyc2005.blog.51cto.com/270872/1942717

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!