Рано или поздно возникает необходимость выполнения бэкапа сайта. Лучше конечно рано, чем поздно. Самый идеальный вариант, на основании представленных ниже записей сделать cron скрипт и выполнять ежедневное архивирование сайта. Т.к. если у Вас интернет магазин или серьезная бизнес площадка, даже 3-4 часа простоя будут стоить Вам огромных денег.
Мы рассмотрим пример работы Вашего сайта под ОС Linux Debian, Apache + Mysql
Все переменные, начинающиеся с символа $ – имена Ваших значений.
Вы всегда можете просмотреть список Ваших БД:
mysql -u $YOUR_USER_DATABASE -p SHOW DATABASES;
Сам бэкап Mysql базы предельно прост:
mysqldump -u $YOUR_USER_DATABASE -p $YOUR_DATABASE_NAME > $DATABASE_BACKUP_NAME.sql
Далее архивируем нашу папку с сайтом:
tar -zcvf $YOUR_ARCHIVE_NAME.tar.gz $FOLDER_TO_SITE/
Все хорошо, архивирование идет. Вы даже написали небольшой скрипт, который гоняет эти простые команды раз в день. И вы вдруг обнаруживаете, что место на сервере катастрофически быстро заканчивается. Оказывается в папке с вашим сайтом есть папка video, размером в 15 Гб и каждый день она резервно копируется. Выход прост – игнорировать эту папку при создании архива:
tar -zcvf $YOUR_ARCHIVE_NAME.tar.gz --exclude video $FOLDER_TO_SITE/
Но как перенести создаваемые архивы на машину, под управлением ОС Windows? Такой проблемы нет, если Вы переносите архив в *nix подобную ОС. В комплект консольного терминала PUTTY входит утилита: pscp
pscp $USER@$IP:/home/timur/archive.tar.gz .
Выполнив эту команду, вы скачаете файл с архивом на свою машину
Обозначения:
$USER – имя пользователя системы
$IP – IP удаленного сервера
$YOUR_ARCHIVE_NAME – имя создаваемого архива
$FOLDER_TO_SITE – архивируемая папка на сервере
$YOUR_USER_DATABASE – Имя пользователя в БД MYSQL, которому разрешено иметь доступ к архивируемой БД