У меня есть сценарий, который работает на Linux Сервер Ubuntu каждый dat в 5:00. Этот сценарий копирует весь мой SVN таким образом:
#!/bin/bash
svnadmin dump /home/xxx/svn/p1 > /home/xxx/svn-backup/p1
svnadmin dump /home/xxx/svn/p2 > /home/xxx/svn-backup/p2
svnadmin dump /home/xxx/svn/p3 > /home/xxx/svn-backup/p3
Проблема состоит в том, что только первый проект (p1) действительно выводится. Остальная часть проектов является файлами с этим текстом в них:
SVN-fs-dump-format-version: 2
UUID: 895acea3-fcd0-46fa-908a-4b43fc3278af
Число пересмотра: 0 довольных длин опоры: 56 довольных длин: 56
КОНЕЦ ОПОР K 8 SVN:DATE V 27 2009-11-12T15:25:00.461875Z
(редактирование) При запущении скрипта из командной строки это копирует все репозитории и делает эту проблему только при выполнении от крона.
Почему это?
Я нашел решение для этого. Проблемой было что-то связанное с выходной буферизацией задания крона, и крон останавливают сценарий, когда это достигает некоторого предела. То, что я сделал для решения проблемы, является двумя вещами:
в кроне я перенаправил вывод в/dev/null
0 5 * * * /home/xxx/svn-backup/run-backup > /dev/null
В резервном выполнением сценарии я перенаправил вывод в/dev/null также
#!/bin/bash
svnadmin dump /home/xxx/svn/p1 > /home/xxx/svn-backup/p1 2>/dev/null
svnadmin dump /home/xxx/svn/p2 > /home/xxx/svn-backup/p2 2>/dev/null
svnadmin dump /home/xxx/svn/p3 > /home/xxx/svn-backup/p3 2>/dev/null
Это сделало мою работу сценария!
Обновление: Это на самом деле также объяснено на stackoverflow - https://stackoverflow.com/questions/2323933/crontab-doesnt-finish-svndump
Кажется, что крон завершает выполнение, после того как определенный предел достигнут в stderr буфере вывода.
Возможно, это - глупый вопрос, но сделайте репозитории p2
и p3
кто-либо фиксировал содержание/изменения уже? Очевидно, что они - репозитории, иначе у Вас были бы сообщения об ошибках вместо вывода, который Вы имеете. Однако, когда я создал пустой репозиторий и работал svnadmin dump
на нем я получил точно поведение, которое Вы описываете. Попытайтесь проверить копию репозиториев и работать svn log
видеть, существуют ли какие-либо зафиксированные изменения. Снова, возможно, это - глупый вопрос, но легко проверить.