Скрипт Бекапа На Яндекс Диск

Тема в разделе "Установка, обновление, настройка", создана пользователем DaSS, 19 дек 2017.

  1. TopicStarter Overlay
    Offline

    DaSS Пользователь

    Сообщения:
    57
    Симпатии:
    40
    Репутация:
    23
    Скрипт бекапа на яндекс диск.
    Автор не я. Всего лишь допилил немного и прокомментировал код.
    PHP:
    <?php
    //Скрипт бекапа базы и файлов на яндекс диск
    //Настройки скрипта
    //Подключение к яндекс диск
    $yadisk_email='[email protected]'//Имя пользователя Яндекс.Диск вместе с @yandex.ru
    //Работает и с сервисом почта для домена. тогда указываем полный адрес, например я создал [email protected]
    $yadisk_pass='password'//Пароль пользователя Яндекс.Диск
    //Директория диске куда будем складывать.
    // Без слешей "/" в начале и конце, а то не будет работать
    //Директория диске куда будем складывать все бекапы.
    $yadisk_dir'backups';
    //Директория диске куда будем складывать бекапы с сайтом, что бы не путаться, название домена
    $yadisk_sitename'sitename.ru';


    // Настройки резервное копирование MySQL
    $dbhost "localhost"//Адрес MySQL сервера, обычно это localhost
    $dbuser "BdUserName"//Имя пользователя базы данных
    $dbpass "BdPassword"//Пароль пользователя базы данных
    $dbname "BdName"//Имя базы данных

    //Настройки копирования файлов
    $sitedir "/home/sitename.ru/public_html"//Абсолютный путь к сайту от корня сайта
    $excludefile $sitedir.'/backup/*.gz'//Исключаем файлы которые не должны попасть в архив

    //Здесь указываем дату для директорий
    $date_now date("d_m_y"); //присваеваем формат 12_03_15 /// Число_месяц_год новой директории для бекапа
    $today[1] = date("H.i"); //присвоен формат элементу массива 18.32 // Час.Минута файлов бекапа

    // Проверяем существование директорий из переменных. Если их нет, они будут создаваться.
    // Проверяем существование директорий из переменной $yadisk_dir - где хранятся все бекапы
    system ("curl --basic -X MKCOL --user $yadisk_email:$yadisk_pass https://webdav.yandex.ru/$yadisk_dir/");
    // Проверяем существование директорий из переменной $yadisk_sitename - директория для бекапа сайта
    system ("curl --basic -X MKCOL --user $yadisk_email:$yadisk_pass https://webdav.yandex.ru/$yadisk_dir/$yadisk_sitename/");
    // Проверяем существование директорий из переменной $date_now - директория даты бекапа
    system ("curl --basic -X MKCOL --user $yadisk_email:$yadisk_pass https://webdav.yandex.ru/$yadisk_dir/$yadisk_sitename/$date_now/");

    //Формируем названия файлам бекапа
    //Формируем название файла бекапа базы данных в формате mysql_Имя-базы-данных_Время-создания.sql.gz
    $dbbackup 'mysql_'.$dbname .'_'$today[1] . '.sql.gz';
    //Формируем название файла бекапа базы данных в формате files_Время-создания.tar.gz
    $filebackup 'files_'$today[1] .'.tar.gz';

    //Создаём файлы и заливаем их на яндекс диск
    //Создаём файл бекапа базы данных и заливаем их на яндекс диск
    //Создаём файл бекапа базы данных
    system("mysqldump --quick -h $dbhost -u $dbuser --password='$dbpass$dbname | gzip > $dbbackup");
    //Заливаем их на яндекс диск
    system ("curl --user $yadisk_email:$yadisk_pass -T $dbbackup https://webdav.yandex.ru/$yadisk_dir/$yadisk_sitename/$date_now/");
    //Удаляем файл бекапа базы данных
    unlink($dbbackup);
    //Создаём архив бекапа файлов и заливаем их на яндекс диск
    shell_exec("tar cvfz $filebackup $sitedir --exclude=$filebackup --exclude=$excludefile");
    //Заливаем их на яндекс диск
    system ("curl --user $yadisk_email:$yadisk_pass -T $filebackup https://webdav.yandex.ru/$yadisk_dir/$yadisk_sitename/$date_now/");
    //Удаляем архив бекапа файлов
    unlink($filebackup);

    //heppy backup =)))
    ?>
    Заливаем файл в директорию backup в корне сайта
    Советую закрыть доступ к файлу или папке с данным файлом через .htaccess
    Запускать через консоль или крон
     
    Последнее редактирование: 19 дек 2017
    kogram, admin и proFreelancer нравится это.