Архитектура
Лор
Постоянно волновала надежность хранения данных своих репозиториев (где бы не находились удаленные репозитории: хоть свой git на сервере, хоть gitlab и т.д.), поэтому додумался до системы дублирования репозитория на разные backup-ноды.
Идея и архитектура этой системы максимально простая:
- Изменения в remote repo поступают только с рабочей ноды.
- Backup ноды лишь pull-ят самую актуальную версию с remote repo.
Работает это с помощью автоматически (systemd или cron) запускаемого ежедневно git pull скрипта
Backup нодами могут служить хоть флешки, не суть. Главное, чтобы было хранилище и возможность выполнять shell команды (не без git).
Естественно, репозиториев много у меня, поэтому скрипт будет pull-ить все.
Setup
git multi pull
Разработал такой простой скрипт (который будет поставляться вместе с репозиторием моих скриптов) для git pull для всех директорий, где есть .git/ :
Schedule
Можно настроить cron (crontab -e
):