Скрипт для автоматического бэкапа баз данных на 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 'Ошибка авторизации'; } ftp_close($ftp_connect); } else { echo 'Ошибка соединения с сервером'; } unlink($_SERVER['DOCUMENT_ROOT'] . $dir . $filename); }
Первое условие проверяет рабочий ли сегодня день и время. Скрипт ограничен работой с понедельника по пятницу и с 8 утра до 8 вечера.
Скрипт написан для 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 и БД
Комментарии отсутствуют