Создание резервных копий сайтов на локальном и удаленном сервере

Признаюсь, я ленив местами. То что можно сделать автоматизированно — я делаю (если смогу побороть лень :-D) И тут представилась такая возможность. Я решил обойтись без панели управления VESTACP и руками настроить сервер для своего сайта.

Сделал по быстрому, и тут встал вопрос о резервном копировании. В панели управления для этого была специальная настройка и всё было замечательно (если не считать того, что периодически панель забывала чистить за собой временные файлы резервных копий и забивала свободное место на диске) однако на сервере настроенном руками, резервное копирование тоже надо делать ручками. Итак, задача:

  1. Делать копии всех сайтов пользователя что есть на сервере.
  2. Делать копии всех баз данных пользователя mysql что есть на сервере.
  3. Хранить копии определенное время.
  4. Хранить копии бекапов на удаленном сервере.
  5. Копии делать 1 раз в день в автоматическом режиме.

Будем исходить из ТЗ.  Имеем:

  • Удаленный сервер remote.site.ru с работающим по стандартному 22 порту сервером ssh на котором есть директория /home/user/backup
  • Сервер с сайтами site.ru расположенными в директории /home/serv/sites
  • MySQL сервер на site.ru к которой мы имеем доступ от имени пользователя serv

Наши действия:

Создаем директорию под локальные бэкапы:

Создаем ключ ssh с помощью которого будем заходить на домашний сервер и копировать туда файлы:

В выхлопе получим что-то вроде:

Идем на remote.site.ru сервер и добавляем туда наш ключ в файл ~/.ssh/authorized_keys Если этого файла нет, то его надо создать и выставить на него права:

Теперь наш сервер с сайтами будет подключаться к удаленному серверу без пароля.

Следующий шаг — добавляем скрипт и настраиваем его:

Каждый шаг скрипта я снабдил комментарием:

Теперь дадим права на запуск нашему скрипту:

Ну и напоследок- добавим выполнение скрипта на полтретьего ночи каждый день:

Вот, в принципе и всё.

Автор: Mirivlad

Скромный труженик консоли и окошек.

Комментарии: