Резервное копирование и восстановление Subversion (SVN) репозиториев на Linux.
Разберем как делать резервные копии имеющихся Subversion (SVN) репозиториев в Linux среде. Все ниже описанное производилось на Debian 8 Jessie.
Резервное копирование репозитория
Создаем резервную копию указанного репозитория:
sudo svnadmin dump /path/to/repository > svnexport.dump
Создаем резервную копию указанного репозитория и сжимаем его:
sudo svnadmin dump /path/to/repository | gzip > svnexport.dump.gz
Резервное копирование все репозиториев (bash скриптом)
Для того чтобы автоматизировать процесс резервирования всех имеющихся репозиториев, создадим скрипт, который будет выполнять эту задачу. Скрипт с коментариями, разобратся в нем не составит труда:
#!/bin/bash # 06/01/2018 Jakonda (http://jakondo.ru) # Резервное копирование репозиториев (SVN) PATH_REPO="/var/svn/" LOCAL_DIR="/srv/backups/svn" EXPIRATION_DAYS=28 DATE=$(date +"%y_%m_%d") # Создаем каталог для размещения бекапов, если он не создан if ! [ -d $LOCAL_DIR ]; then mkdir $LOCAL_DIR fi # Создаем каталог с текущей датой mkdir -p $LOCAL_DIR/$DATE # Создание дампа всех репозиториев cd $PATH_REPO for REPO in *; do test -d "$REPO" && /usr/bin/svnadmin dump $REPO | gzip > $LOCAL_DIR/$DATE/$REPO.dump.gz done # Удаление старых резервных копий find $LOCAL_DIR* -mtime +${EXPIRATION_DAYS} -exec rm {} \; # Удаление пустых каталогов find $LOCAL_DIR* -type d -empty -exec rmdir {} \;