Backup site yandex disk

Как сделать Backup сайта на яндекс диск.

in Блог on 17.07.2019

Самый простой и надежный способ настроить резервное копирование сайта в облако. Например на Яндекс диск. Но так как бесплатный объем диска ограничен 20 гигабайтами то хранить рекомендую всего 2 копии сайта. 1. Ежедневная 2. Еженедельная. В принципе можно сделать еще ежемесячную

Таким образом в процессе работы с сайтом если что то пойдет не так, вы всегда сможете восстановить вчерашнюю копию. Если прошло более 1 суток то вернутся к копии не старше одной неделе, ну или не старшу месяца.

Это будет лучше чем повторять все с нуля).

Как сделать ежедневный backup

Итак, что для этого надо.

  1. Зарегистрированный аккаунт на яндекс диске
  2. Доступ к планировщику (cron)

Процесс состоит из 5 последовательных шагов:

  1. Выгрузка базы данных сайта
  2. Архивирование файлов сайта в отдельную папку (без фотографий, логов, кэша).
  3. Подготовка архива zip для отправки
  4. Отправка архива на яндекс диск.
  5. Удаление созданного архива

Приступим…

  1. Создаем в планировщике (cron) задание ежедневное (желательно выбрать время с наименьшей нагрузкой, например ночью) для выгрузки базы данных:
mysqldump -u login -ppassword -h localhost  nameDB | gzip > /var/www/user/data/nameDB.sql.gz
zip -rp /var/www/user/data/  /var/www/user/data/backup

В данном коде:

  • login — логин для подключения к БД
  • password — пароль для подключения (пишется слитно с -р)
  • nameDB — Название выгружаемой базы;
  • Далее путь в корень хостинга с названием базы
  • Второй строкой упаковываем выгруженную базу в zip архив и перемещаем в предварительно созданную папку backup

2. Создаем архив файлов (в моем случае без картинок, логов, кэша). Пример резервного копирования сайта на opencart.

zip -rp /var/www/user/data/backup/sitename.zip /var/www/user/data/www/sitename.ru/ -x "/var/www/user/data/www/sitename.ru/image/cache/*" -x "/var/www/user/data/www/sitename.ru/system/storage/logs/*" -x "/var/www/user/data/www/sitename.ru/image/catalog/i/*" -x "*.cache" -x "/var/www/user/data/www/sitename.ru/vqmod/vqcache/*"

3. Архивируем папку backup в zip

zip -rp sitename.zip /var/www/user/data/backup/

4. Отправляем полученный архив на Яндекс диск в папку backup (предварительно надо создать)

curl --user login:pass -T sitename.zip https://webdav.yandex.ru/backups/

login — логин для доступа к диску pass — пароль для доступа к диску sitename.zip — имя отправляемого файла

5. После отправки удаляем с хостинга файл sitename.zip

unlink /var/www/user/data/stopprice.zip

В планировщике необходимо настроить все шаги с запасом времени, так что бы файлы успевали полностью скопироваться прежде чем начет создаваться архив, или успел отправится на диск прежде чем удалится.

Как сделать backup еженедельно

Что бы создавать еженедельный или ежемесячный архив достаточно создать дополнительные папки на диске например backups/week/ и backups/month/

В планировщике сделать команду еженедельную и/или ежемесячную которая будет отправлять созданный файл в соответствующие папки.

curl --user login:pass -T sitename.zip https://webdav.yandex.ru/backups/week/
curl --user login:pass -T sitename.zip https://webdav.yandex.ru/backups/month/

Важно:

  1. Отправить необходимо до того как произойдет удаление файла!!!
  2. Все архивы на диске перезаписываются с заданной вами периодичностью (ежедневно, еженедельно, или ежемесячно)

Вы можете бесплатно скачать файл сценария для резервного копирования (backup) на яндекс диск

Фильтр

  • Категории

  • Версия

  • Тема