Найчастіше при використанні віртуального і виділеного сервера потрібно налаштувати бекап даних.
Якщо на сервері використовується панель керування, наприклад 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/home/user/backup – користувач, пароль і шлях на віддаленому сервері, куди треба відправити бекап.
Якщо потрібно щоб файли резервних копій віддалялися, які інсують вже больше 30 днів, можна додати в скрипт команду:
find /backup/ -type f -mtime +30 -delete
Де, /backup/ – шлях до директорії де зберігаються бекапи,
+30 – термін зберігання файлів.
На цьому приклади налаштувань бекапов на серверах завершений.
Спасибо
Спасибо, ваш сайт очень полезный!