svn官方备份hot-backup.py强烈推荐
Author:牛班圖
Date:2016/05/18
Address:suzhou
---
centos 6.7默認安裝的python是2.6.6,大家可以先查看一下自己操作系統的python版本,python -v;
hot-backup.py是基于python2寫的,python3的語法有些地方不一樣,所以在python3上不一定能運行,我沒有測試,有空的同學可以測試一下,目前linux os默認安裝的python版本都是2
# /opt/subversion-1.9.3/tools/backup/hot-backup.py --help
USAGE: hot-backup.py [OPTIONS] REPOS_PATH BACKUP_PATH
Create a backup of the repository at REPOS_PATH in a subdirectory of
the BACKUP_PATH location, named after the youngest revision.
Options:
? --archive-type=FMT Create an archive of the backup. FMT can be one of:
?????????????????????? bz2? : Creates a bzip2 compressed tar file.
?????????????????????? gz?? : Creates a gzip compressed tar file.
?????????????????????? zip? : Creates a compressed zip file.
?????????????????????? zip64: Creates a zip64 file (can be > 2GB).
? --num-backups=N??? Number of prior backups to keep around (0 to keep all).
? --verify?????????? Verify the backup.
? --help????? -h???? Print this help message and exit.
備份命令:
/opt/subversion-1.9.3/tools/backup/hot-backup.py --archive-type=gz --num-backups=7 --verify /usr/local/data/svn/repos/ui/ /usr/local/data/backup/
可以添加到定時任務:
crontab -e
每行一個任務,一行一個倉庫。
?
源碼分析:
print("Backing up repository to '" + backup_subdir + "'...")
err_code = subprocess.call([svnadmin, "hotcopy", repo_dir,
??????????????????????????? backup_subdir, "--clean-logs"])
if err_code != 0:
? sys.stderr.write("Unable to backup the repository.\n")
? sys.stderr.flush()
? sys.exit(err_code)
else:
? print("Done.")
腳本核心是使用svnadmin hotcopy是全量備份,包括庫的鉤子腳本、配置文件等;
優點是:備份過程較快,災難恢復也很快;如果備份機上已經搭建了svn服務,甚至不需要恢復,只需要進行簡單配置即可切換到備份庫上工作。
缺點是:比較耗費硬盤,需要有較大的硬盤支持。現在誰還在乎容量啊~~~哈哈,把幾臺服務器不用的空間找個開源分布式文件系統做個存儲池,夠用了吧。
還原:還原
先解壓最新備份文件
#svnadmin hotcopy?/usr/local/data/backup/解壓后的備份文件 /usr/local/data/svn/repos/ui/
?
關于svn的遷移,以及對一個總庫按目錄關鍵字遷出多個版本庫,并且重新開始commit版本的需求可以聯系我,給我留言。
轉載于:https://www.cnblogs.com/nbuntu/p/5504574.html
總結
以上是生活随笔為你收集整理的svn官方备份hot-backup.py强烈推荐的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求人力资源的大神指点
- 下一篇: 用easyui动态创建一个对话框