Резервная копия сайта в Яндекс.Диск



Я привык все автоматизировать, в том числе и создание резервных копий. Облачные системы хранения DropBox и Яндекс.Диск существенно упрощают этот процесс.

Программное обеспечение для резервного копирования на Яндекс.Диск

Для того, чтобы осуществить резевное копирование данных на облачный сервис Яндекс.Диск необходим cURL.
cURL — свободная (распространяемая по лицензии MIT), кроссплатформенная служебная программа командной строки для копирования файлов по различным протоколам с синтаксисом URL.
Из Википедии
Процедура копирования состоит из одной строки
curl --user yandex_login:yandex_password -T file_name_to_upload https://webdav.yandex.ru

Которая не нуждается в пояснениях. Все что Вам нужно это иметь аккаунт Яндекс.Диск.

Копирование в Яндекс.Диск на PHP

Я преобразовал свой скрипт резервного копирования на PHP. И сейчас он выглядит так:
<?
// Резервное копирование MySQL и файлов хостинга
// Версия 2.1 Яндекс
$dbhost = "localhost"; //Адрес MySQL сервера
$dbuser = "base_user"; //Имя пользователя базы данных
$dbpass = "user_password"; //Пароль пользователя базы данных
$dbname = "base_name"; //Имя базы данных
$sitedir = "/home/username/public_html"; //Абсолютный путь к сайту от корня диска
$excludefile = $sitedir.'/backup/*.gz'; //Файлы которые не должны попасть в архив
$yadisk_email='XXXXXXX@yandex.ru'; //Имя пользователя Яндекс.Диск
$yadisk_pass='ZZZZZZZ'; //Пароль пользователя Яндекс.Диск
$yadisc_dir='backup/'; //Директория на Яндекс.Диск куда будем копировать. Она должна существовать!
// Все что ниже, лучше не трогать
$dbbackup = $dbname .'_'. date("Y-m-d_H-i-s") . '.sql.gz';
$filebackup = 'files_'. date("Y-m-d_H-i-s") .'.tar.gz';
system("mysqldump -h $dbhost -u $dbuser --password='$dbpass' $dbname | gzip > $dbbackup");
//Для больших баз данных закоментировать строчку выше и раскоментировать ниже.
//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/$yadisc_dir");
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/$yadisc_dir");
unlink($filebackup);
?>

Этот скрипт последовательно создает резервные копии базы данных MySQL и файлов виртуального хостинга, сжимает их и отправляет в Яндекс.Диск

Настройка резервного копирования по рассписанию Cron

Добавьте задание CRON с такой командой
/usr/bin/php -q /path-to-backup-folder/backup/backup.php

Подкорректируйте пути PHP и скрипта резервного копирования в соответствии с настройками вашего хостинга.

Если у Вас используется cPanel то это будет выглядеть следующим образом:




Что необходимо для создания резервной копии на сайте

  • Хостинг с поддержкой PHP, и cURL
  • Аккаунт Яндекс.Диск

Источники и литература:

wiki.firstvds.ru/index.php/Резервное_копирование
forum.max-3000.com/viewtopic.php?f=6&t=4545&start=10
rus-linux.net/MyLDP/BOOKS/lame-10/lame-10/c1315.htm
maketecheasier.com/schedule-regular-database-backup-to-dropbox/2012/02/01
www.host.ru/tips/38

Взято с moonback.ru
comments powered by Disqus

1 комментарий

avatar
zenway.ru/forum/viewtopic.php?id=144 (бэкап на почту)
  • 1337
  • 0

Оставить комментарий