标签:备份
网站源码和数据库的定期备份的重要性大家都清楚,可以对于随备份文件的增加,不定期删除将会浪费很多时间,但是需要人为去清理感觉很麻烦,因此需要自动定期删除。
本人想到两个办法:
1 利用时间戳的差值去定期删除
2 使用logrotate去删除文件
第一种代码如下
#!/bin/bash
webdir=/usr/local
backdir=/usr/local/backdir
var1=`date +%Y%m%d`
timelimit=2592000
/usr/local/mysql/bin/mysqldump -u root -p123456 hyzn09 > $backdir/hyzn09_`date +%Y%m%d`.sql
if [[ $? -eq 0 ]];then
echo "mysql databases hyzn09 backup succeed"
fi
cd $webdir
tar -zcf hyWeb_`date +%Y%m%d`.tar.gz test
#!/bin/bash
webdir=/usr/local
backdir=/usr/local/backdir
var1=`date +%Y%m%d`
timelimit=2592000 #这里表示时间为30天
/usr/local/mysql/bin/mysqldump -u root -p123456 test > $backdir/test_`date +%Y%m%d`.sql
if [[ $? -eq 0 ]];then
echo "mysql databases test backup succeed"
fi
cd $webdir
tar -zcf test_`date +%Y%m%d`.tar.gz test
if [[ $? -eq 0 ]];then
echo "webdir test backup succeed"
fi
mv test_`date +%Y%m%d`.tar.gz $backdir
cd $backdir
for i in `ls $backdir | awk -F_ ‘{print $2 }‘ | awk -F. ‘{print $1}‘`
do
olddate=`date -d $i +%s`
newdate=`date +%s`
diffdate=`expr $(($newdate-$olddate))` #通过文件创建时间与现在时间的时间戳的差值去判断是否删除文件
echo $diffdate
echo $timelimit
if [[ $diffdate -gt $timelimit ]];then
rm -fr *$i*
# echo "yes"
fi
done值得注意的是,打包的时候不要使用绝对路径,会提示
我就加了个cd,如果有更好的想法,望告诉本人
cd $webdir
tar -zcf hyWeb_`date +%Y%m%d`.tar.gz test
第二种就是 先备份文件,然后通过配置logrotate配置文件去删除旧文件。还可以使用python的time模块去控制文件的删除。呵呵!!!
小结:
对于一般的文件备份来说,差异备份可以使用md5sum命令删除多余文件,而全备可以使用时间戳来控制。
本文出自 “小丁子” 博客,请务必保留此出处http://dqzshine.blog.51cto.com/8093967/1590711
标签:备份
原文地址:http://dqzshine.blog.51cto.com/8093967/1590711