Зачастую при использовании виртуального или выделенного сервера нужно настроить бэкап данных.
Если на сервере используется панель управления, например 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 — срок хранения файлов.
На этом примеры настроек бэкапов не сервере завершён.
Спасибо
Спасибо, ваш сайт очень полезный!