Jump to content
Sign in to follow this  

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

Sign in to follow this  
k010v

79 views

В данной статье я приведу пример организации простейшего резервного копирования сайтов и баз данных MySQL с сервера CentOS 7.x на Яндекс.Диск.

Прежде всего установим yandex-disk на сервер, для этого воспользуемся утилитой yum и инструкцией от Яндекса:

# nano /etc/yum.repos.d/yandex.repo
 

В файл yandex.repo введём такие данные:

 
[yandex]
name=Yandex
failovermethod=priority
baseurl=http://repo.yandex.ru/yandex-disk/rpm/stable/$basearch/
enabled=1
metadata_expire=1d
gpgcheck=1
gpgkey=http://repo.yandex.ru/yandex-disk/YANDEX-DISK-KEY.GPG
 

Далее:

# rpm --import http://repo.yandex.ru/yandex-disk/YANDEX-DISK-KEY.GPG
# yum install yandex-disk
 

После установки запускаем конфигурацию Яндекс.Диска:

$ yandex-disk setup
 

В качестве директории для синхронизации, я оставил дефолтную (/home/user/Yandex.Disk)

Создадим в ней директорию для бэкапа:

$ cd /home/user/Yandex.Disk
$ mkdir backup
 

Нелишним будет в файле конфигурации Яндекс.Диска отключить директории отличные от backup, если вы планируете пользоваться им не только для создания резервных копий. Делается это просто, добавлением строки в файл config.cfg:

exclude-dirs="exclude/dir1,exclude/dir2,path/to/another/exclude/dir"

 

 

Теперь необходимо создать bash-скрипт, который будет в эту папку создавать backup’ы:

$ vim backup.sh
 
CURDATE=`date +%F`
OLDDATE=`date +%F --date='7 day ago'`
mysqldump -u mysqluser -ppassword --all-databases > /home/user/mysql-$CURDATE.sql
gzip /home/user/mysql-$CURDATE.sql
mv /home/user/mysql-$CURDATE.sql.gz /home/user/Yandex.Disk/backup
rm /home/user/Yandex.Disk/backup/mysql-$OLDDATE.sql.gz
tar czf /home/user/Yandex.Disk/backup/sites-$CURDATE.tar.gz /var/www/sites
rm /home/user/Yandex.Disk/backup/sites-$OLDDATE.tar.gz

 

 

В этом скрипте переменной CURDATE присваивается текущая дата, переменной OLDDATE дата недельной давности. Создаётся дамп базы данных, сжимается gzip’ом, и переносится в директорию Яндекс.Диска, туда же создается сжатая tar+gzip’ом копия директории с сайтами (в данном примере это /var/www/sites).  Скрипт настроен таким образом, что удаляет бекапы старее 6 дней.

Далее нужно запустить синхронизацию с Яндекс.Диском:

$ yandex-disk start
 

Можно протестировать создание бекапов:

$ bash backup.sh
 

Убедитесь в наличии прав на запуск файла backup.sh

Как только резервная копия будет создана, демон Яндекс.Диска начнёт синхронизировать копию с облаком.

Если всё прошло нормально, добавим выполнение скрипта backup.sh в планировщик cron:

$ crontab -e
 

Внесём туда такую строку

3 5 * * * bash /home/user/backup-new.sh
 

При такой конфигурации скрипт будет запускаться каждый день в 5 часов 3 минуты утра. Можно скорректировать время, исходя из дневной нагрузки на сервер, выбирая промежуток времени с наименьшей нагрузкой.

Sign in to follow this  


0 Comments


Recommended Comments

There are no comments to display.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...