Я только что обнаружил, что автоматические дампы, которые я создавал в моем репозитории SVN, рано обрезаются, и в основном только половина дампа есть. Это не чрезвычайная ситуация, но я ненавижу находиться в этой ситуации. Это в первую очередь поражает цель создания автоматизированных резервных копий.CRONTAB не завершает работу svndump
Команда, которую я использую, приведена ниже. Если я выполняю его вручную в терминале, он завершает штраф; файл output.txt имеет размер 16 мегабайт со всеми 335 версиями. Но если я оставлю его к кронтабу, он подпишет на полпути, примерно в 8,1 мегабайта и только первые 169 ревизий.
# m h dom mon dow command
18 00 * * * svnadmin dump /var/svn/repos/myproject > /home/andrew/output.txt
Я на самом деле сохранить датированного сжатые файлы, и нет недостатка места на сервере, так что это не проблема дискового пространства. Кажется, это залог через две секунды, так что это может быть проблемой времени, но размер файла один и тот же каждый раз за последний месяц, поэтому я не думаю, что это так. Выполняется ли crontab в ограниченном пространстве памяти?
Я не думаю, что ограничение по размеру является фактором здесь. Хотя файл был отключен на полпути, в каталоге было 20 одинаковых резервных копий одинакового размера. Я попытался сбросить/tmp, и он обрезается в той же точке. Crontab также выполняется на уровне суперпользователя, поэтому он должен иметь довольно свободный доступ к файловой системе. – Andrew
Еще одна мысль: - Попробуйте обернуть вызов svnadmin в shell scrtipt. Добавьте отметки даты и времени до и после вызова svnadmin. Перенаправить вывод в некоторый файл журнала. Также записывайте код результата svnadmin. Это даст вам некоторое представление о том, насколько успешным был призыв svnadmin и сколько времени это заняло. - Попробуйте перепланировать эту задачу в другое время (у меня есть некоторые сумасшедшие ошибки cron, связанные с конкретной датой и временем выполнения). – sha
Конечно, когда я захватил код возврата в сценарии оболочки, svnadmin dump возвращается с «0», когда я sudo-исполняю его вручную, но он возвращается с «1», когда это делает crontab. Я также зарегистрировал/usr/bin/id, и информация там одинакова как для меня, так и для crontab. Сценарий запускается в идентичных контекстах пользователя. Должно быть какое-то значение конфигурации crontab, которое я не вижу здесь.Ничто из этого не имеет для меня никакого смысла. Я буду рыть. – Andrew