Резервное копирование и восстановление сервера Gitea
Все может произойти в эти трудные времена.
Нужно создать резервные копии 1) базы данных, 2) файлового хранилища, 3) некоторых других файлов Gitea. Вот как это сделать.
В посте Тестирование Gitea мы установили сервер Gitea.
Когда
Теперь, как мера предосторожности на случай неприятных событий, нужно отработать процедуру резервного копирования и восстановления.
Лучше быть осторожным, чем пожалеть.
Где
Данные сервера Gitea состоят из трёх компонентов:
- код
- файловое хранилище
- база данных
В нашем тестовом окружении все вместе занимают немного больше 700 МБ:
Как рекомендуют, нужно остановить все службы и создать резервные копии всех компонентов, как бы в рамках одной транзакции.
И восстановление также должно происходить в рамках одной транзакции.
Как — Резервное копирование
cd ~/gitea-srv-local
# резервное копирование базы данных
sudo docker exec -t gitea-srv-local_db_1 bash -c 'pg_dump gitea -U gitea --file=/var/lib/postgresql/backups/gitea-db-$(date +%Y-%m-%d).sql'
# остановка Gitea
sudo docker-compose down
# проверка папки с резервными копиями
sudo ls postgres-backups
# создание папки для резервных копий
mkdir gitea-backups
# резервное копирование папки Gitea
sudo tar -zcvf gitea-backups/gitea-gitea-$(date +%Y-%m-%d).tgz gitea/gitea
# резервное копирование папки с репозиториями
sudo tar -zcvf gitea-backups/gitea-git-$(date +%Y-%m-%d).tgz gitea/git
# запуск
sudo docker-compose up -d
последний этап — войти на другой сервер и скопировать папку с резервными копиями туда, или выполнить другие операции с файлами
scp -r uname@gitea-srv-ip-addr:/home/uname/gitea-srv-local/gitea-backups ~/gitea-backups
scp -r uname@gitea-srv-ip-addr:/home/uname/gitea-srv-local/postgres-backups ~/postgres-backups
Как — Восстановление
На самом деле, здесь немного больше, особенно с правами доступа и хуками, но идея та же.
Но! проверьте оригинальную документацию: https://docs.gitea.com/administration/backup-and-restore
# сначала установите
# затем остановите
sudo docker-compose down
# восстановление файлов
tar -zxvf gitea-git-___.tgz gitea/git
tar -zxvf gitea-gitea-___.tgz gitea/gitea
# запуск
sudo docker-compose up -d
# здесь какие-то действия с psql или pg_restore
sudo docker exec -t gitea-srv-local_db_1 bash -c 'psql gitea -U gitea --file=/var/lib/postgresql/backups/gitea-db-$(date +%Y-%m-%d).sql'
Затем перейдите в интерфейс и проверьте