Бэкап mysql

Резервное копирование базы данных mysql — это то что необходимо любому проекту. Будь это простая CRM и маленького сайта до глобальной системы. Все это настраивается уже на готовом продукте. Подобная ситуация легко объяснима. В самом начале наша база пуста и нет смысла ее копировать. В момент разработки мы не задумываемся о целостности и хранении. И только когда проект наберет обороты, мы осознаем, что главная ценность системы — это накопленная база данных. В случае сбоя — это будет катастрофа

Бэкап mysql на ftp

Предлагаю Вашему вниманию скрипт на PHP который позволит создавать резеврную копию данных на FTP сервер

if ((date('w') > 0)and(date('w') < 6)and(date('G') > 7)and(date('G') < 20)) {
// comment out the following two lines when deployed to production
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
 
require(__DIR__ . '/../../vendor/autoload.php');
require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');
 
$config = require(__DIR__ . '/../../config/web.php');
 
$filename = date('Y') . '-' . date('n') . '-' . date('j') . '-' . date('G') . '-' . date('i') . '.sql';
$dir = '/mysql/';
$remoteDir = '/backup/mysql_crm/';
 
$command = 'sudo mysqldump -u ' . $config['components']['db']['username'] . ' ' . $config['components']['db']['name'] . '>' . $_SERVER['DOCUMENT_ROOT'] . $dir . $filename;
 
exec($command);
 
$ftp_connect = ftp_connect($config['components']['ftpBackup']['host'], 21);
if ($ftp_connect) {
$ftp_login = ftp_login($ftp_connect, $config['components']['ftpBackup']['login'], $config['components']['ftpBackup']['password']);
if ($ftp_login) {
$ftp_put = ftp_put($ftp_connect, $remoteDir . $filename, $_SERVER['DOCUMENT_ROOT'] . $dir . $filename, FTP_BINARY);
if (!$ftp_put) {
echo 'Ошибка загрузки файла на сервер'айла на сервер';
}
} else {
echo 'Ошибка авторизации'Ошибка соединения с сервером'} else {
echo 'Ошибка соединения с сер

Первое условие проверяет рабочий ли сегодня день и время. Скрипт ограничен работой с понедельника по пятницу и с 8 утра до 8 вечера.

Затем устанавливаем переменные которые нам необходимы для дальнейшей работы.

Следующим шагом мы соединяемся с FTP сервером. В моменты исключения где мы не можем соединиться или авторизоваться с сервером, желательно добавить отправку письма администратору о невозможности сделать резервную копию.

После того как все соединения а авторизации пройдут успешно, сохраняем на ftp сервере наш sql файл.

Скрипт написан для yii2 поэтому, для обычного использования строки ниже можно убрать

defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
 
require(__DIR__ . '/../../vendor/autoload.php');
require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');
 
$config = require(__DIR__ . '/../../config/web.php');

Единственное что Вам будет необходимо — это сконфигурировать переменную config которая хранит данные для доступа к FTP и БД

Резервное копирование mysql

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *