Автоматизация перемещения резервных копий своего сайта с сервера на Яндекс.Диск.
Описание даётся на примере сервера CentOS (Linux).
Предполагается, что резервные копии уже складываются в определённую папку. В примере ниже это папка backup, расположенная в корне сервера.
Создавать резервные копии умеют очень многие системы по управлению сайтами (например: VESTA, ISPManager, а также различные WordPress плагины).
Для создания и перемещения резервных данных одним скриптом, не используя сторонние решения, смотрите другую статью: Создание резервных копий и перемещение на Яндекс Диск.
Предварительно устанавливаем Яндекс Диск на свой Linux сервер.
После установки и настройки Яндекс Диска заходим к себе на сервер через Терминал.
Через командную строку создаём на сервере директорию my_scripts и файл скрипта backup_webdav.sh, который будет перемещать резервные копии на Яндекс Диск:
sudo mkdir my_scripts
nano /my_scripts/backup_webdav.sh
Вставляем содержимое скрипта:
mount -t davfs https://webdav.yandex.ru /mnt/yandex/
#mv /backup/ /mnt/yandex
cp -r /backup/* /mnt/yandex
# Отключаем Яндекс Диск
umount /mnt/yandex
где ключ -r – означает копирование в том числе и папок.
При желании можно перемещать папку целиком, для этого раскомментируем команду перемещения, а команду копирования закомментируем.
mount -t davfs https://webdav.yandex.ru /mnt/yandex/
mv /backup/ /mnt/yandex
#cp -r /backup/* /mnt/yandex
# Отключаем Яндекс Диск
umount /mnt/yandex
Из папки /backup/ данные будут копироваться в папку Яндекс Диска, который подключен по пути /mnt/yandex.
Запуск скрипта вручную:
или если не работает, так:
sh backup_webdav.sh
Можно скрипт внести в задания CRON и назначить расписание.
Добавляем задания в CRON
Открываем файл CRON
Добавляем данные:
# ежедневно в 2:00
00 2 * * * root /my_scripts/backup_webdav.sh >/dev/null 2>&1
На файл backup_webdav.sh нужно выставить права доступа chmod +x, иначе он не будет запускать через CRON. Для этого через командную строку вводим:
chmod +x backup_webdav.sh
Теперь каждый день в 2 часа ночи, резервные копии, созданные сторонними программами, будут перемещаться на Яндекс Диск.
Делаем для скриптов резервную копию
Также можно скопировать скрипты на будущее, сделав для них резервную копию в корневой каталог сайта.
как правильно добавить скрипт в панели управления Vesta в Cron?
так:
sudo sh /my_scripts/backup_webdav.sh ?
Через Vesta я редко добавляю, потому наверняка не скажу, как в данном случае, но скорее всего без sh, так:
sudo /my_scripts/backup_webdav.sh
Возможно скрипт нужно положить куда-нибудь вроде:
sudo /usr/local/vesta/bin/backup_webdav.sh
Или даже убрать окончание у файла (по аналогии, как это сделано сейчас для внутренних скриптов Vesta):
sudo /usr/local/vesta/bin/backup_webdav