Бэкап очень важен если вы дорожите информацией. И не важно, будь то это веб сервер или какой то другой. Вообщем тот сервер на котором вы не хотите потерять все данные в случае выхода его из строя. Восстановить данные бывает очень тяжело, а иногда и вовсе невозможно. Есть 2 типа админов — те, кто ещё не делают бекапы, и те, кто уже делают. Бэкап должен быть автоматизирован и его копии должны хранится в нескольких местах. И так, ниже я преведу свой скрипт бэкапа. Он по своей составляющей прост но эффективен.
Название можете задать любое, мой называется backup-cyber-x.sh. Главное что бы он заканчивался на .sh
Скрипт:
#!/bin/bash #backup mysql db of wordpree site: #backup mysql mysqldump -u имя пользователя -pПароль admin_wp > /home/cyber-x/backup/mysql/admin_wp.sql #backup wordpress site rsync -az /home/admin/web /home/cyber-x/backup/site/ tar -cpzf /home/cyber-x/cyber-x-backup/$(date +%F)-cyber-x.tar.gz /home/cyber-x/backup/ #backup delete rm -r /home/cyber-x/backup/mysql/admin_wp.sql rm -r /home/cyber-x/backup/site/web
Давайте я вам поясню что тут написано. В секции: backup mysql указаны данные от mysql базы, это ваш логин и пароль. Это нужно для того что бы скрипт смог беспрепятственно копировать ее в нужную нам папку. В моем случае база копируется по пути: /home/cyber-x/backup/mysql/. Вы же можете создать любую папку в домашней директории и указать скрипту копировать базу данных в нее. Ну и само собой указываем имя базы данных которую собираемся копировать: admin_wp.sql. Так же в начале указываем название базы данных которую надо скопировать, в моем случае это: admin_wp.
В секции: backup wordpress site дано задание утилите rsync -az копировать мою директорию с сайтом по адресу: /home/admin/web /home/cyber-x/backup/site/. Тут все просто, эта часть делиться на 2 этапа. 1 — этап: указываем директорию с нашим сайтом. В моем случае это: /home/admin/web. У вас же данная директория может отличаться. К примеру у вас файлы с сайтом могут находится по следующему адресу: var/www/. 2 — этап указываем куда копировать. Тут все просто, как и в случае с базой данных создается папка и указывается что скрипту нужно копировать файлы именно сюда. В моем случае это: /home/cyber-x/backup/site/.
Архивация выполняется командой: tar -cpzf /home/cyber-x/cyber-x-backup/$(date +%F)-cyber-x.tar.gz /home/cyber-x/backup/. Тут стоит заострить внимания только на названии: (date +%F)-cyber-x.tar.gz. В скобках автоматически указывается дата и время создания архива. А так же на пути: /home/cyber-x/cyber-x-backup/$(date +%F)-cyber-x.tar.gz — этот путь куда копируется архив. А этот откуда берутся файлы для архива:/home/cyber-x/backup/. И последние две команды удаляют не заархивированные файлы. Это нужно для того что бы не скапливался мусор в системе и бэкап был исправен:
#backup delete
rm -r /home/cyber-x/backup/mysql/admin_wp.sql
rm -r /home/cyber-x/backup/site/web
Дальше нужно сделать его исполнительным и добавить в cron. Это делается следующим образом, вводим в терминале:
Делаем исполнительным:
sudo chmod a+x имя вашего скрипта
Добавляем в cron:
sudo crontab -e
В самом конце файла добавляем запись:
#backup wordpress cyber-x in MySQL:
0 3 * * 3,6 /home/cyber-x/backup-cyber-x.sh
Тут так же все просто, 0 3 это время. Бэкап происходит в 3 часа 0 минут. 3,6 это дни недели, то есть в среду и в субботу. Проверить работоспособность скрипта можно следующим образом, в терминале набираете команду:
./backup-cyber-x.sh
Предполагается что вы в это время находитесь в той же директории что и скрипт. После запуска скрипта он должен сработать и сделать архив сервера.
Материал взят с сайта «Cyber-X.ru»