Резервная копия сайта в Яндекс.Диск
Я привык все автоматизировать, в том числе и создание резервных копий. Облачные системы хранения 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
1 комментарий