Возрастающие Резервные копии репозитория SVN ежедневно? (ОС = UNIX)

При создании постфикса просто отклонить почту, как это входит, это не использует адрес отправителя, это просто отказывается от электронной почты при "ПРИЕМЕ ДЛЯ" подготовки. Удостоверьтесь, что Вы имеете

soft_bounce=no
unknown_local_recipient_reject_code = 550

Я не уверен, что еще Вы начали на, но по крайней мере на моем постфиксе, если кто-то пытается послать электронное письмо неизвестному локальному пользователю, он возвращается рано в соединении, а не после того, как они соединили и отправили Вам сообщение.

3
задан 26 October 2010 в 15:47
2 ответа

Если Вы хотите сделать это сами, изучите "svnlook самый молодой" и "svnadmin дамп - возрастающий-r$ {STARTREV}: $ {ENDREV}" команды.

Я вставил ниже сценариев, которые я использую для создания полных и возрастающих дампов моих репозиториев SVN, они хранят пересмотр и дату последнего резервного копирования в подкаталогах/home/svn/var. Сделайте полный дамп сначала, затем столько возрастающих дампов, сколько Вы хотите.

Полные SVN выводят сценарий:

#!/bin/sh

# Full dump of all subversion repositories

# make sure to get the subversion environment variables
. /etc/profile.d/subversion.sh

# path to subversion binaries
SVN_BINPATH=${SVN_HOME}/bin

# path to parent of all repositories to be dumped
SVN_REPPATH=/opt/svn/repositories

# destination directory for backup files
DUMP_DIR=/backup/svn

# status directory
SVN_VAR=/home/svn/var

DATETIME=`date +%Y%m%d`

for rep in ${SVN_REPPATH}/*;
do
  TSTAMP=`date +%s`
  CURR_REV=`${SVN_BINPATH}/svnlook youngest ${rep}`
  REP_BASE=`basename $rep`

  echo "**********************************************************"
  echo "`date --rfc-2822`  - Full back up - ${rep} : "
  echo "     current revision ${CURR_REV}"
  echo

  DUMPFILE=${DUMP_DIR}/${REP_BASE}-${DATETIME}.dmp
  ${SVN_BINPATH}/svnadmin --quiet dump $rep > ${DUMPFILE}
  echo ${TSTAMP} > ${SVN_VAR}/status/dates/${REP_BASE}.dt
  echo ${CURR_REV} > ${SVN_VAR}/status/revisions/${REP_BASE}.rev
  bzip2 --compress --best ${DUMPFILE}
done

echo
echo `ls -hl ${DUMP_DIR}/*.bz2`

Возрастающие SVN выводят сценарий:

#!/bin/sh

# Incremental dump of all subversion repositories

# make sure to get the subversion environment variables
. /etc/profile.d/subversion.sh

# path to subversion binaries
SVN_BINPATH=${SVN_HOME}/bin

# path to parent of all repositories to be dumped
SVN_REPPATH=/opt/svn/repositories

# destination directory for backup files
DUMP_DIR=/backup/svn

# status directory
SVN_VAR=/home/svn/var

DATETIME=`date +%Y%m%d`

for rep in ${SVN_REPPATH}/*;
do
  TSTAMP=`date +%s`
  CURR_REV=`${SVN_BINPATH}/svnlook youngest ${rep}`
  REP_BASE=`basename $rep`

  if [ -e ${SVN_VAR}/status/dates/${REP_BASE}.dt ] ; then
    REP_LAST_BK_TSTAMP=`cat ${SVN_VAR}/status/dates/${REP_BASE}.dt`
    REP_LAST_BK_REV=`cat ${SVN_VAR}/status/revisions/${REP_BASE}.rev`
  else
    REP_LAST_BK_TSTAMP=0
    REP_LAST_BK_REV=0
  fi

  if [ ${CURR_REV} -gt ${REP_LAST_BK_REV} ] ; then
    echo "**********************************************************"
    echo "`date --rfc-2822`  - Incremental back up ${rep} : "
    echo "     oldest revision ${REP_LAST_BK_REV} - newest revision ${CURR_REV}"
    echo

    DUMPFILE=${DUMP_DIR}/${REP_BASE}-${DATETIME}-${REP_LAST_BK_REV}-${CURR_REV}.dmp
    ${SVN_BINPATH}/svnadmin --quiet dump $rep --incremental -r${REP_LAST_BK_REV}:${CURR_REV}> ${DUMPFILE}
    echo ${TSTAMP} > ${SVN_VAR}/status/dates/${REP_BASE}.dt
    echo ${CURR_REV} > ${SVN_VAR}/status/revisions/${REP_BASE}.rev
    bzip2 --compress --best ${DUMPFILE}
  fi
done

echo
echo `ls -hl ${DUMP_DIR}/*.bz2`

Надеюсь, это поможет.

10
ответ дан 3 December 2019 в 04:50
  • 1
    я определил путь к $SVN_HOME установки Подверсии в/etc/profile.d/subversion.sh файле: путем импорта этого файла я сохраняю это определение в единственном месте только, и я не должен повторять его в резервных сценариях. –  Sebastiano Pilla 28 October 2010 в 00:02

Не могу комментировать вышеизложенное из-за репутации, но показанный сценарий имеет ошибку : последняя ревизия в каждой инкрементной резервной копии также сбрасывается как первая ревизия в следующий, т.е. они перекрываются одним: Например,

repository-20171115-1-3.dmp   # initial dump, contains rev. 1-3
repository-20171116-3-8.dmp   # second dump, contains 3-8 (should be 4-8!)
repository-20171116-8-15.dmp  # third dump, contains 8-15 (should be 9-15!)

Это приводит к странным проблемам, когда дампы загружаются обратно в репо с использованием Команда "svn load" - она ​​пытается загрузить одну и ту же ревизию дважды (в основном не обнаруживается, но терпит неудачу, если файлы были добавлены или удалены, потому что svn пытается затем снова выполнить действие). Вы по-прежнему можете загружать эти дампы, но вам необходимо явно указать диапазон ревизий, чтобы не включать первую ревизию в каждом инкрементном дампе.

1
ответ дан 3 December 2019 в 04:50

Теги

Похожие вопросы