1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > svn数据库自动备份脚本

svn数据库自动备份脚本

时间:2020-01-03 12:37:47

相关推荐

svn数据库自动备份脚本

创建一个存放备份数据的路径

mkdir /data/svnbak -p

采用shell脚本的方式实现自动备份

#vim backup.sh

#!/bin/bash

log="/data/svnbak/last_add_backed_up.log" # 添加日志文件,打印开始结束时间,方便查看执行时间

echo "********************"backup start time: `date -d today +"%Y-%m-%d %T"`"***************">> $log

cd /data/svnbak

mkdir `date +%F`

chmod 755 `date +%F`

cd `date +%F`

ls -l /home/svn-repos | awk '$1~"d"{print$8}' > list #注:/home/svn-repos是svn数据库的路径

for i in `cat list`

do

mkdir /data/svnbak/`date +%F`/$i #注:在另一个路径下创建与数据库相同的目录

done

SRCPATH=/home/svn-repos #定义仓库路径

DISTPATH=/data/svnbak/`date +%F` #定义备份数据存放的路径;

echo $DISTPATH

cat $DISTPATH/list | while read filename

do

svnadmin hotcopy $SRCPATH/$filename $DISTPATH/$filename --clean-logs #注:此处使用hotcopy开始备份

done

echo "-------------------backup end time: \"`date -d today +\"%Y-%m-%d %T\"`\"-------------------" >> $log

chown www-data.www-data $DISTPATH -R #注:备份之后修改成与原数据库相同的权限

#删除10天前的备份

basedir=/data/svnbak/ #备份的路径

old_day=`date +%F -d"-10 days"`

filename=$basedir/$old_day

rm -rf $filename

可以把这个脚本添加到计划任务中,实现每个星期六的凌晨1点01分周期性的自动备份,如下内容所示:

crontab -e

01 01 * * 6 /bin/bash /root/backup.sh

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。