#svn #backup #maintenance
#svn #резервное копирование #обслуживание
Вопрос:
Я новичок и хочу администрировать SVN-сервер. У нас много репозиториев SVN на одном сервере, и мы хотим, чтобы все они создавались отдельно (например, <repo_name>_last revision): Полное резервное копирование == Раз в неделю, инкрементное == Каждую ночь
Также, как только резервное копирование завершено или не завершено (каждый день и каждую неделю), мы хотим, чтобы было запущено уведомление по электронной почте.
Ниже приведен сценарий оболочки, который я нашел, но, похоже, он ПРЕДНАЗНАЧЕН ТОЛЬКО для одного репозитория, и для отправки уведомления о состоянии не используется операция «MAILTO».
При первом запуске выполняется полное резервное копирование, при каждом последующем запуске выполняется только увеличение по сравнению с последними фиксациями во время последнего резервного копирования.
#!/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
Комментарии:
1. В чем ваш вопрос?
2. @uzsolt Мой вопрос в том, что я хочу создать сценарий оболочки и запланировать его как задание cron для автоматического создания дампа всех репозиториев (по отдельности) с главного SVN-сервера в расположение NAS.
3. И что не так с вашим скриптом?
4. Мой скрипт только читает: SVN_LOACTION=mysvn.server.com/svn . Единый репозиторий. Поэтому я хочу использовать для всего репозитория.