git - Ежедневное резервное копирование (бэкап) сайта
Система контроля версий (в нашем случае git) очень полезный инструмент для работы над веб-проектами. Кроме того, мы можем воспользоваться ее обширными возможностями и организовать ежедневный бэкап конкретного сайта.
Ниже предлагаю краткую инструкцию по организации резервного копирования файлов сайта в удаленный репозиторий.
Важно: прежде чем начать работу с локальным репозиторием, убедитесь, что в корневой директории сайта присутствует файл .gitignore, содержащий в себе корректные исключения.
Для начала создаем локальный репозиторий (если он еще не создан)
Переходим в директорию сайта с использованием консоли (например ssh клиент putty)
cd [ абсолютный путь до директории сайта ]
git init
Производим первоначальную настройку
Первоначальная настройка git будет выполнена для текущего конкретного проекта (без параметров --system и --global)
git config user.name "[ имя пользователя ]"
git config user.email "[ адрес электронной почты ]"
git config core.autocrlf true
git config core.symlinks true
git config core.fileMode false
git config core.longpaths true
git config pack.threads 1 (не обязательно, зависит от случая)
git config http.postBuffer 524288000 (не обязательно, зависит от случая, чаще всего требуется, когда remote по протоколу https)
git config pack.windowMemory 50m (не обязательно, зависит от случая, по умолчанию установлено в 10m)
Добавляем информацию об удаленном репозитории
git remote add origin https://username@bitbucket.org/username/reponame.git
Делаем отправку данных в удаленный репозиторий
git add --all
git commit -m "init"
git push origin master
Создаем shell-скрипт
В корне сервера (возможно, в директории на уровень выше директории текущего проекта) создаем файл backup.sh.
Данный shell-скрипт будет выполняться по cron ежедневно в одно и то же время, установленное в планировщике.
Ниже привожу листинг содержимого вновь созданного файла:
cd [ абсолютный путь до директории проекта ]
git add --all
git commit -m "backup"
git push --repo https://username:password@bitbucket.org/username/reponame.git
Практически все готово, осталось несколько штрихов!
Обратите внимание, на следующие моменты:
- Исполняемый shell-скрипт должен быть закрыт от общего доступа.
- Исполняемый shell-скрипт и задание в планировщике должны принадлежать одному пользователю системы.
- У исполняемого shell-скрипта должены быть утановлены права на выполнение текущим пользователем.
Теперь, добавляем в cron задание на выполнение нашего shell-скрипта раз в сутки (0 0 * * * [ абсолютный путь до директории ]backup.sh) и можем смело тестировать работу нашего git-архиватора.
Вам требуются услуги или консультация специалиста по веб-разработке?
Свяжитесь со мной