Данный скрипт написан на Unix Shell под управлением операционной системы CentOS. Он будет работать на большинстве систем семейств Linux и BSD.
Скрипт будет создавать для каждой базы свой дамп. Это необходимо для быстрого восстановления данных.
Создаем каталог для скриптов и сам скрипт:
mkdir /scripts
vi /scripts/mysql_backup.sh
Задаем права скрипту на выполнение:
chmod +x /scripts/mysql_backup.sh
Подключаемся к базе данных и создаем учетную запись с правом на создание резервных копий:
mysql -uroot -p
> GRANT SELECT, SHOW VIEW, RELOAD, REPLICATION CLIENT, EVENT, TRIGGER, LOCK TABLES, PROCESS ON *.* TO [email protected] IDENTIFIED BY ‘backup’;
* в данном примере мы создаем учетную запись backup с паролем backup.
Создаем каталог, в котором будут храниться резервные копии:
mkdir -p /backup/mysql
Резервные копии необходимо создавать на удаленном компьютере или внешнем диске, чтобы они были доступны при выходе из строя сервера. В данном примере используется общая папка на удаленном сервере, в которой будут размещаться файлы с backup.
Чтобы упростить процесс монтирования сетевой папки, откроем на редактирование следующий файл:
# vi /etc/fstab
и добавим в него следующую строчку:
//192.168.0.1/backup /mnt cifs user,rw,noauto,credentials=/root/.smbclient 0 0
* в данном примере выполняется монтирование общей папки backup на сервере с IP-адресом 192.168.0.1 в каталог /mnt. В качестве сетевой файловой системы используется cifs (протокол SMB: сервер samba или общая папка Windows). Параметры для подключения — user: позволяет выполнить монтирование любому пользователю, rw: с правом на чтение и запись, noauto: не монтировать автоматически при старте системы, credentials: файл, в котором написаны логин и пароль для подключения к общей папке.
Теперь создадим файл с логином и паролем:
# vi /root/.smbclient
и приведем его к следующему виду:
username=backuppassword=backup
* username: имя пользователя, password: пароль. Само собой, в вашем случае указываются свои данные.
Теперь введите следующую команду:
# mount /mnt
Должна примонтировать сетевая папка //192.168.0.1/backup. Это можно проверить следующей командой:
Создадим правило в cron для автоматического запуска нашего скрипта. Выполняем команду:
crontab -e
И добавляем строку:
0 3 * * * /scripts/mysql_backup.sh
* в данном примере мы будем запускать резервирование каждый день в 3 часа ночи.
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies