ВОЙТИ
    opened image

    Выполнение на Linux серверах регулярных бекапов веб-сайта или базы данных (БД) является важной практикой для обеспечения безопасности и сохранности данных. Вот несколько основных причин, почему необходимо выполнять бекапы с использованием скриптов:

    1. Сбои и ситуации аварийного восстановления: Веб-сайты и БД могут столкнуться с различными проблемами, такими как сбои сервера, атаки злоумышленников, ошибки разработчика или случайное удаление данных. Регулярное создание бекапов позволяет восстанавливать данные и веб-сайт до момента возникновения проблемы.

    2. Защита от потери данных: Бекапы являются гарантией сохранности данных в случае их удаления, повреждения или утраты. Если веб-сайт или БД содержат важную информацию, такую как пользовательские данные, заказы, контент или настройки, резервное копирование помогает минимизировать потери и восстановить работоспособность.

    3. Тестирование и разработка: Бекапы данных могут использоваться в целях тестирования и разработки. Они позволяют создавать копии рабочей среды для проверки новых функций, исправлений ошибок или экспериментов без риска потери реальных данных.

    4. Миграция на новый хостинг: При переносе веб-сайта на новый хостинг или изменении серверной инфраструктуры бекапы помогают сохранить данные и перенести их на новую платформу.

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

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

    Выполнение бекапов с использованием скриптов позволяет автоматизировать и упростить этот процесс,

    Скрипт.

    Например Вам нужно выполнять перодически бекапы сайта на внешнее FTP-храпнилище. Можно использовать скрипт на Bash. Для использования данного скрипта и выполнения бекапов нужно что бы был установлен wput.  Скрипт можно скачать с GitHub. 

    Мы выполняем следующие действия:

    Переходим в директорию /backup/sql. У нас есть специальная директория на нашем сервере, где мы сохраняем резервные копии нашей базы данных. Используя утилиту mysqldump, мы создаем резервную копию нашей базы данных DATABASE, с паролем для подклчюения PASS. Экспортируем содержимое базы данных с помощью команды mysqldump, а затем сжимаем его с максимальным уровнем сжатия -9 с помощью gzip. Результат сжатия мы сохраняем в файл с именем, содержащим текущую дату и расширением .gz. Затем мы выполняем команду wput, которая отправляет файл резервной копии нашей базы данных (date +sql-dump.%d%m%y.gz) по FTP на наш удаленный сервер. Используем FTP-соединение и указываем имя пользователя userXXXXXX, пароль PASS и IP-адрес сервера IP.

    У нас также есть отдельная директория, где мы храним резервные копии файлов нашего веб-сайта. Переходим в директорию расположения бекапов сайта /backup/www. Используем команду tar, чтобы создать архив файлов нашего веб-сайта /var/www/html/. Сохраняем права доступа файлов с помощью флага p и сжимаем архив с помощью gzip и флага z. Результат сохраняется в файл с именем, содержащим текущую дату и расширением .tar.gz.

    Наконец, мы выполняем команду wput, чтобы отправить файл архива наших файлов веб-сайта (date +files.%d%m%y.tar.gz) по FTP на наш удаленный сервер. Мы передаем данные для FTP-соединения, включая имя пользователя userXXXXXX, пароль PASS и IP-адрес удаленного сервера IP или внешнего FTP -хранилища.

    Таким образом, мы создаем резервные копии нашей базы данных и файлов веб-сайта, а затем отправляем их на удаленный FTP-сервер для безопасного хранения и сохранности данных.

    #!/bin/bash
    cd /backup/sql
      mysqldump  -u root -pPASS  DATABASE | gzip -c -9  > `date +sql-dump.%d%m%y.gz`
      wput `date +sql-dump.%d%m%y.gz` ftp://userXXXXXX:PASS@IP/
    
    cd /backup/www
      tar -cpzf  /backup/www/`date +files.%d%m%y`.tar.gz /var/www/html/
      wput `date +files.%d%m%y.tar.gz`  ftp://userXXXXXX:PASS@IP/

    Примечания.

    Можно создать скрипт и положить в /etc/cron.daily/ для ежедневного резервного копирования с указанием в имени даты архивации. Однако, если скрипт будет запускатсья автоматически, могут быть негатывные последствия, через некоторе время, при заполнении места на сервере или внешнем FTP-хранилище - бекапы перестанут выполняться ! Данный простой скрипт можно использовать только если Вы сами будет периодически проверять и/или удалять старые бекапы по дате создания или проверяя дату в имени архвах. Выполнение скрипта по крону и/или более сложные варианты рассмотрим в другой статье.