Joh*_*han 10 backup debian svn
进行 Subversion 备份的最佳方法是什么(在基于 Debian 的服务器上)。
是使用svnadmin吗?
svnadmin dump /path/to/reponame > reponame.dump
Run Code Online (Sandbox Code Playgroud)
或者也许只是为了 tar 存储库所在的目录?
tar -cvzf svn.backup.tar.gz /var/subversion/
Run Code Online (Sandbox Code Playgroud)
以上各有什么优缺点?
谢谢约翰
更新:这是一个只有少量存储库的小型服务器。所以增量备份可能不需要,我认为最好专注于保持简单。
更新:我使用 packs 包装器脚本(它又是 svn-hot-backup 的包装器)进行完整备份,然后在另一台干净的计算机上进行完整恢复。但是我删除了“SVN_HOTBACKUP_NUM_BACKUPS=10”部分,因为它对我不起作用。
请注意,我觉得这有点简单,结果非常接近 tar 目录。但正如 Manni 在这里指出的那样,使用 svn-hot-backup/"svnadmin hotcopy" 是一种更可靠的方法,因为如果您不走运,tar 可能会不时创建损坏的备份。
Sco*_*ack 11
寻找 svn-hot-backup 脚本。它应该与 subversion 一起提供,并包含做你想做的所有逻辑,加上自动推出旧备份。我编写了以下包装脚本,该脚本使用 svn-hot-backup 作为夜间 cronjob 运行以备份具有多个存储库的单个服务器,稍作修改以进行通用化。
#!/bin/bash
#
# Dumps the svn repos to a file and backs it up
# to a local directory.
#Keeps the last 10 revisions
REPODIR="/var/repos"
BAKDIR="/data/backup/svn"
PROG="/usr/local/sbin/svn-hot-backup"
REPOLIST='repo1 repo2 repo3'
if [ ! -x "${PROG}" ]
then
echo "svnbak: Could not execute \`${PROG}\`"
exit 1
fi
for repo in ${REPOLIST}
do
# Dump the database to a backup file
echo "svnbak: Dumping subversion repository: ${repo}"
SVN_HOTBACKUP_NUM_BACKUPS=10 nice ${PROG} --archive-type=gz ${REPODIR}/${repo} ${BAKDIR}/${repo} &> /tmp/svnbak.$$
if [ "$?" -eq "1" ]
then
echo "svnbak: Hot backup on '${repo}' failed with message:"
/bin/cat /tmp/svnbak.$$
fi
/bin/rm /tmp/svnbak.$$
done
exit 0
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14348 次 |
最近记录: |