Бэкам 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 'Ошибка авторизации';
        }
        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 и БД

 

Поделиться с сайта feramount.ru
Поделиться
Последние работы
Комментарии

Комментарии отсутствуют