Недавно я столкнулся с небольшой проблемой
Недавно я столкнулся с небольшой проблемой. Нужно было организовать автоматическое создание резервных копий базы данных. Задача, конечно, стандартная, а, учитывая объем базы (меньше 1МБ), может быть решена без специального софта и оборудования. Так что я выбрал самый простой способ (осуществляется в три этапа): 1) создание дампа БД; 2) упаковка дампа в архив; 3) отправка архива на eMail. На сегодняшний день, объемы почтовых ящиков позволяют вообще не удалять эти архивы, и надежность решения получается довольно высокой, т. к. данные хранятся на разных серверах. Т. е. все, что нужно сделать – написать скрипт и запускать его с помощью cron. Скрипт я решил сделать на PHP, и сразу же столкнулся с проблемой. Для создания дампа базы удобнее всего использовать утилиту mysqldump, которая у меня на хостинге прекрасно работет из консоли, но не запускается из скрипта. Причина оказалась очень простой. В настройках PHP на сервере хостера были отключены функции: shell_exec(), exec() и т. п. Поэтому пришлось делать backup в два этапа. 1) Создание дампа БД Для этого планировщик я просто добавил команду: mysqldump – uuser_name – hhost_name – puser_password db_name > /path_to_tmp/db_backup/mydbdump. sql В результате выполнения этой команды, создается файл mydbdump. sql с дампом базы, который будет размещен в папке /path_to_tmp/db_backup/. В параметрах команды, естественно, нужно указать настоящие имена базы, пользователя, пароль и путь к папке /tmp. Примечание. Для папки /path_to_tmp/db_backup/ должны быть установлены права на запись.
2) Упаковка дампа в архив и отправка по eMail Эти операции выполняются одним скриптом.