Переписал скрипт для бекапа баз 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.
Постовые: , ,

Рубрики
Теги: 
Для debian-based
sudo apt-get install automysqlbackup
Спасибо за скрипт. Очень удобно.
P.S. Вы, видимо, работали используя только дефолтный путь к архивам в конфиге. Чтобы работало с другими положениями архива необходимо поменять 60-61 строчку скрипта на:
if (!file_exists($config['bpath'].’/’.$date)){
exec(‘mkdir ‘.$config['bpath'].’/’.$date);
В идеале конечно бы найти подобное но не на пхп. Чем меньше скриптов требующих exec, тем больше шансов еще больше увеличить безопасность и запретив exec
У меня exec запрещен для ПХП в Апаче, а в cli разрешен. :)
[...] под мои задачи. Поэтому я предлагаю воспользоваться этим. Он правдо на php. Но это ничего не [...]