svn数据库自动备份脚本
生活随笔
收集整理的這篇文章主要介紹了
svn数据库自动备份脚本
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
創(chuàng)建一個(gè)存放備份數(shù)據(jù)的路徑
mkdir /data/svnbak -p
采用shell腳本的方式實(shí)現(xiàn)自動(dòng)備份
#vim backup.sh
#!/bin/bash
log="/data/svnbak/last_add_backed_up.log" ? # 添加日志文件,打印開始結(jié)束時(shí)間,方便查看執(zhí)行時(shí)間
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數(shù)據(jù)庫的路徑
for i in `cat list`
do
? ? mkdir /data/svnbak/`date +%F`/$i #注:在另一個(gè)路徑下創(chuàng)建與數(shù)據(jù)庫相同的目錄
done
SRCPATH=/home/svn-repos #定義倉庫路徑
DISTPATH=/data/svnbak/`date +%F` ?#定義備份數(shù)據(jù)存放的路徑;
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 #注:備份之后修改成與原數(shù)據(jù)庫相同的權(quán)限
#刪除10天前的備份
basedir=/data/svnbak/ #備份的路徑
old_day=`date +%F -d"-10 days"`
filename=$basedir/$old_day
rm -rf $filename
可以把這個(gè)腳本添加到計(jì)劃任務(wù)中,實(shí)現(xiàn)每個(gè)星期六的凌晨1點(diǎn)01分周期性的自動(dòng)備份,如下內(nèi)容所示:
crontab -e
01 01 * * 6 /bin/bash /root/backup.sh
mkdir /data/svnbak -p
采用shell腳本的方式實(shí)現(xiàn)自動(dòng)備份
#vim backup.sh
#!/bin/bash
log="/data/svnbak/last_add_backed_up.log" ? # 添加日志文件,打印開始結(jié)束時(shí)間,方便查看執(zhí)行時(shí)間
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數(shù)據(jù)庫的路徑
for i in `cat list`
do
? ? mkdir /data/svnbak/`date +%F`/$i #注:在另一個(gè)路徑下創(chuàng)建與數(shù)據(jù)庫相同的目錄
done
SRCPATH=/home/svn-repos #定義倉庫路徑
DISTPATH=/data/svnbak/`date +%F` ?#定義備份數(shù)據(jù)存放的路徑;
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 #注:備份之后修改成與原數(shù)據(jù)庫相同的權(quán)限
#刪除10天前的備份
basedir=/data/svnbak/ #備份的路徑
old_day=`date +%F -d"-10 days"`
filename=$basedir/$old_day
rm -rf $filename
可以把這個(gè)腳本添加到計(jì)劃任務(wù)中,實(shí)現(xiàn)每個(gè)星期六的凌晨1點(diǎn)01分周期性的自動(dòng)備份,如下內(nèi)容所示:
crontab -e
01 01 * * 6 /bin/bash /root/backup.sh
轉(zhuǎn)載于:https://www.cnblogs.com/reblue520/p/6239751.html
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的svn数据库自动备份脚本的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 线程的生命周期和状态控制
- 下一篇: 有趣的JavaScript原生数组函数