首页 > 代码库 > 网站源码和数据库备份轮转
网站源码和数据库备份轮转
网站源码和数据库的定期备份的重要性大家都清楚,可以对于随备份文件的增加,不定期删除将会浪费很多时间,但是需要人为去清理感觉很麻烦,因此需要自动定期删除。
本人想到两个办法:
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
值得注意的是,打包的时候不要使用绝对路径,会提示
tar: 从成员名中删除开头的”/”这样的警告
我就加了个cd,如果有更好的想法,望告诉本人
cd $webdir
tar -zcf hyWeb_`date +%Y%m%d`.tar.gz test
第二种就是 先备份文件,然后通过配置logrotate配置文件去删除旧文件。还可以使用python的time模块去控制文件的删除。呵呵!!!
小结:
对于一般的文件备份来说,差异备份可以使用md5sum命令删除多余文件,而全备可以使用时间戳来控制。
本文出自 “小丁子” 博客,请务必保留此出处http://dqzshine.blog.51cto.com/8093967/1590711
网站源码和数据库备份轮转
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。