Примеры настройки бэкапа

Зачастую при использовании виртуального или выделенного сервера нужно настроить бэкап данных.

Если на сервере используется панель управления, например VestaCP, ISPmanager и другие — в них есть возможность настроить резервную копию файлов в интерфейсе панели. Если на сервере всё настроено вручную — в таком случае бэкап файлов можно так же настроить вручную.

Разберём несколько примеров.

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

#!/bin/bash
B_DATE=$(date +"%Y-%m-%d")
DIR="/var/www/site.com" 
tar -czf /backup/dump_site.com_$B_DATE.tar.gz $DIR

Данный пример сделает архив файлов сайта, который расположен по пути /var/www/site.com, и поместит архив в папку /backup.

Так же, нам будет нужно создать дамп базы данных, обычно это команда:

mysqldump NAME_BASE -u USER -pPASSWORD > NAME_DUMP.sql

Если таких баз много, можно использовать скрипт для создания дампов всех баз данных на сервере.
Перейдите в папку где хотите чтобы сохранялись все бэкапы баз данных.
Создайте скрипт backup.sh:

nano backup.sh

В него пропишите код:

#!/bin/bash
USER=root
PASSWORD="ПАРОЛЬ" 
for i in `mysql -u $USER -p$PASSWORD -e'show databases;' | \
grep -v performance_schema | grep -v information_schema | grep -v mysql | \
grep -v Database`; do mysqldump -u $USER -p$PASSWORD $i > ./$i.sql;done

Где ПАРОЛЬ — пароль root в mysql.
Сделайте скрипт исполняемым:

chmod +x backup.sh

И запустите:

./backup.sh

Дождитесь окончания.

Теперь, можно совместить скрипты в один и использовать его для создания полной резервной копии баз данных и файлов на сервере. Добавьте скрипт создания бэкапа в планировщик задач cron так, как вам удобно, например:

0 0 * * * /bin/bash /scripts/backup.sh

Где, /scripts/backup.sh — путь к скрипту.
0 0 * * * — запуск скрипта каждый день в полночь.

Вы так же можете отправлять файлы бэкапа на другой сервер через утилиту scp:

scp /backup/backup.tar.gz USER@123.123.123.123:/home/user/backup

Где, /backup/backup.tar.gz — путь к бэкапу который надо отправить,
USER@123.123.123.123 — пользователь и IP сервера на который надо отправить бэкап,
/home/user/backup — путь на удалённом сервере, куда надо отправить бэкап.

Или так же с помощью ftp:

curl --upload-file "/backup/backup.tar.gz" ftp://USER:PASSWORD@123.123.123.123/home/user/backup

Где, ftp://USER:PASSWORD@123.123.123.123 — пользователь, пароль и путь на удалённом сервере, куда надо отправить бэкап.

Если нужно чтобы файлы бэкапов удалялись, которые старше 30 дней, можно добавить в скрипт команду:

find /backup/ -type f -mtime +30 -delete

Где, /backup/ — путь к директории где хранятся бэкапы,
+30 — срок хранения файлов.

На этом примеры настроек бэкапов не сервере завершён.

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *