【问题标题】:Auto-Back Up of Subversion RepositorySubversion 存储库的自动备份
【发布时间】:2011-01-22 21:52:35
【问题描述】:

如何每晚备份我的 Subversion 存储库?我有一个网络驱动器,我想每晚将存储库转储到其中。

【问题讨论】:

    标签: svn backup


    【解决方案1】:

    查看 The Book 中的 Repository Maintenance 章节,了解如何从存储库中提取转储。然后使用定时服务(例如atcron,或者Windows 操作系统中非常好的任务调度程序,取决于您的服务器系统)每晚执行转储。完成。

    【讨论】:

    • 根据存储库的大小,转储不是执行此操作的最佳方法,因为创建转储和恢复转储需要一些时间。你应该使用 svnadmin hotcopy
    • SVNBook 的链接已过时
    【解决方案2】:

    SVN 书籍中有一个关于Repository Backup 的部分。

    svnadmin hotcopy 命令允许您安全地备份实时存储库。

    svnsync 命令是另一种可能性。

    【讨论】:

      【解决方案3】:

      我刚刚写了一个简短的脚本来完成这项工作。 第一次运行进行完整备份,每次进一步运行只是在上次备份期间的最后一次提交的基础上增加。 备份文件将获取最后修订的编号以跟踪该过程。

      设置正确的设置

      WORKDIR=path to where this script resists

      SVN_REPO_LOCATION=path to where the repository resists on hd

      BACKUPDIR=path to where the backup should goes to

      SVN_LOACTION=root location which you use in your svn command

      并将脚本添加到 cronjob 中,就是这样。

      #!/bin/bash
      WORKDIR=/home/user/svnbackup
      SVN_REPO_LOCATION=/opt/svn
      BACKUPDIR=./backup
      SVN_LOACTION=https://mysvn.server.com/svn
      
      cd $WORKDIR;
      CURRENT_VERSION=`svn info $SVN_LOACTION | grep Revision | awk '{print $2}'`
      LAST_VERSION=`cat svn.version 2>/dev/null`
      mkdir -p $BACKUPDIR;
      if [ "$LAST_VERSION" = "" ]
      then
              echo fullbackup;
              svnadmin dump -q $SVN_REPO_LOCATION > $BACKUPDIR/svn_backup_$CURRENT_VERSION.dump;
              echo $CURRENT_VERSION > svn.version;
      else
              if [ "$LAST_VERSION" == "$CURRENT_VERSION" ]
              then
                      echo backup not necessary;
              else
                      echo incremental;
                      svnadmin dump -q $SVN_REPO_LOCATION -r$LAST_VERSION:$CURRENT_VERSION --incremental  > $BACKUPDIR/svn_backup_$CURRENT_VERSION.dump;
                      echo $CURRENT_VERSION > svn.version;
              fi
      fi
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-08
        • 2013-06-30
        • 2021-06-14
        • 2010-11-18
        • 2010-09-29
        • 1970-01-01
        • 2013-05-07
        • 2016-01-20
        相关资源
        最近更新 更多