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

Эта запись опубликована в рубрике [ MySQL, Скрипты ]

Переписал скрипт для бекапа баз 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

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Post to Twitter Post to Delicious Post to Facebook Post to MySpace Post to Ping.fm

Оценить эту запись:
1 звезда2 звезды3 звезды4 звезды5 звезд
Метки: [ , ]
Вы можете следить за ответами к этой записи через RSS 2.0 feed. Вы можете оставить мнение, или трэкбэк с собственного сайта.

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

  • 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 разрешен. :)

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