MySQLDBBackup новая версия

Переписал скрипт для бекапа баз MySQL.

Подумалось мне, что не верно каждую базу в конфиг вписывать, а нужно бекапить все сразу, не особо задумываясь.

Итого получилось такое:

MySQL DB Backup умеет сохранять резервные копии баз данных; позволяет управлять резервированием баз данных из одного места, что гораздо удобнее, чем ручное копирование; проводить ротацию файлов копий, ограничив количество этих копий; создавать резервные копии на удаленном сервере.

[ ... СКАЧАТЬ ... ]

$ svn co --username anonymous http://svn.in-lan.net.ua/svn/MySQLDBBackup

[ ... ИНСТРУКЦИЯ ПО УСТАНОВКЕ ... ]

1. Настройте параметры конфигурации в файле mysqldbbackup.ini.

Раздел Options. В нем находятся настройки
хранения, ротации, доступа к базе данных. Для примера:

[Options]
removedays = *
nob = 10
arch = gzip
copt = c
dbhost = localhost
dbuser = root
dbpass = Mega$uperPa$sword
isslave = 1
bpath = /root/MySQLDBBackup/archives

- removedays отвечает за настройку дня недели, в которые будет проводиться удаление
старых файлов резервных копий. Дни недели указываются через запятую (0 – воскресенье). Можно
указать “*”, что означает каждый день. НЕ ИСПОЛЬЗУЕТСЯ В ЭТОЙ ВЕРСИИ.;
- nob (number of backups) отвечает за количество хранимых бекапов;
- arch – архиватор;
- copt – параметры архиватора;
- dbhost – адрес хоста MySQL сервера;
- dbuser – имя суперпользователя (обычно root);
- dbpass – пароль для указанного пользователя;
- isslave – определяет останавливать репликацию на сервере или нет перед бекапом;
- bpath – путь для бекапов.

2. Установите права запуска на скрипт 700, владельца и группу root.
3. Внесите в crontab запуск скрипта по расписанию:

0 1 * * * root php /path/to/mysqldbbackup.php

5. Все. Скрипт находится в рабочем состоянии.

[ ... TO DO ... ]

1. Персональные настройки для каждой базы.

[ ... HISTORY ... ]

ver. 2.0b1

+ бекап всех баз сервера;
+ остановка репликации на подчиненном сервере;
+ доп. параметры конфига;
+ добавлены параметры архиватора;
* Временно не работает дни бекапа баз;

ver. 1.0

+ Создан конфиг в виде стандартного ini-файла;
+ Добавлена проверка наличия замыкающего слеша;
* Переписана схема ротации;
* Увеличена информативность выводимого отчета.

[ ... REGARDS ... ]

1. Спасибо за помощь в отлове багов Lice (TSRh Team).

Прошу комментировать и вносить предложения. :)

Лицензия – GPLv3.

Постовые: room in odessa, яхты украина, russian radio

Поделиться этой заметкой с друзьями:

Добавь меня:

Вы можете оставить комментарий, или поставить трэкбек со своего сайта.

5 комментариев(я)

  • 16.10.2009 10:38, linvinus сказал:

    Для debian-based
    sudo apt-get install automysqlbackup

    • 18.10.2009 22:17, demius сказал:

      Спасибо за скрипт. Очень удобно.
      P.S. Вы, видимо, работали используя только дефолтный путь к архивам в конфиге. Чтобы работало с другими положениями архива необходимо поменять 60-61 строчку скрипта на:
      if (!file_exists($config['bpath'].’/’.$date)){
      exec(‘mkdir ‘.$config['bpath'].’/’.$date);

      • 18.10.2009 22:19, demius сказал:

        В идеале конечно бы найти подобное но не на пхп. Чем меньше скриптов требующих exec, тем больше шансов еще больше увеличить безопасность и запретив exec

        • 19.10.2009 10:14, Silver Ghost сказал:

          У меня exec запрещен для ПХП в Апаче, а в cli разрешен. :)

        • [...] под мои задачи. Поэтому я предлагаю воспользоваться этим. Он правдо на php. Но это ничего не [...]

          (Обязательно)
          (Обязательно, не публикуется)

          Админ не заснул, он перегружается!