у меня есть CentOs 7.1 и Сервер Git установлен на нем.
В Сервер Git настроен с SSH ключи поэтому пользователям нужен кодовая фраза и закрытый ключ для подключения к серверу.
В настоящее время существует 7 репозиториев, которые пользователи часто посещают.
Администрирование Git-Server осуществляется с помощью инструмента гитолит-админ.
Я хочу создать резервное копирование сервера Git, включая каждый репозиторий и каждый параметр конфигурации.
я знаю это cronjobs можно использовать для этого, но я не уверен, что лучше клон репо или zip / tar все папки, связанные с git, в файл.
Как это сделать правильно?
Лучшее субъективно в зависимости от вашего окружения и целей. Использование git или tar / gzip создаст резервную копию.
Использовать gitolite writable
команда, чтобы отключить отправку во все репозитории или конкретное репо при использовании tar / gzip или другого собственного инструмента резервного копирования. Это предотвратит запись в репозиторий во время резервного копирования. Ваша резервная копия будет повреждена, если вы пропустите этот шаг, и кто-то запишет в репозиторий во время резервного копирования.
Бегать gitolite writable -h
для подробного использования. См. Документацию gitolite для получения дополнительной информации. http://gitolite.com/gitolite/gitolite.html
Вы можете использовать rsync, чтобы скопировать весь сервер, tar и сохранить его. Я бы посоветовал хранить его на внешнем сервере (например, BackBlaze B2).
Вот несколько примеров rsync:
Rsync через SSH:
rsync -avzhe ssh root@192.168.0.100:/root/install.log /tmp/
Если вы хотите провести пробный запуск, добавьте --dry-run
. Если вы хотите реплицировать сервер, удаленные файлы необходимо удалить в целевой системе, добавьте -delete
для этого.
Еще примеры rsync: http://www.tecmint.com/rsync-local-remote-file-synchronization-commands/