Запись опубликована
Knave. Please leave any
comments there.
Как гласит древняя китайская поговорка: «Все люди делятся на тех, кто уже делает бэкапы, и на тех, кто еще не делает».
Вот и я в очередной раз задумался о необходимости дополнительных бекапов. Основные требования такие:
- Легкий доступ, по возможности отовсюду (никогда не знаешь, когда и где потребуется доступ к резервной копии)
- Относительно большой дисковый объем
- Низкие накладные расходы
Для этого очень подходит
Dropbox. Для загрузки бекапа в Dropbox я использую
класс от Jaka Jančar.
Выглядит это так:
$dumpFile = $_SERVER['DOCUMENT_ROOT'] . CONFIG_TEMP_PATH . '/avtobeginner-' . date("d-m-Y_H-i-s") . '.sql';
$dumpQuery = 'mysqldump -u' . CONFIG_DB_USER . ' -p' . CONFIG_DB_PASSWORD . ' -h' . CONFIG_DB_HOST . ' ' . CONFIG_DB_NAME . ' > ' . $dumpFile;
exec($dumpQuery);
$dumpQuery = 'gzip -f ' . $dumpFile;
exec($dumpQuery);
$dumpFile .= '.gz';
if (file_exists($dumpFile)) {
$Uploader = new DropboxUploader(CONFIG_DROPBOX_EMAIL, CONFIG_DROPBOX_PASSWORD);
$Uploader->upload($dumpFile, '/Backup/');
/* Пишем в лог об успешном бекапе */
unlink($dumpFile);
}
else {
/* Пишем в лог об успешном бекапе */
}
Скрипт запускается по крону утром через день.