У Яндекс.Диска существует полнофункциональный linux-клиент, который может работать без GUI. Соответственно, его можно подключить, например, к серверу на Ubuntu и бэкапить на него сайт или любые другие файлы. Единственный существенный минус — нет функционала разграничения доступа к директориям внутри Яндекс.Диска — при бэкапе с разных машин каждая из них будет видеть всё содержимое. Но как дополнительный запасной вариант вполне подойдет.
Создадим директорию, где будут храниться бекапы:
mkdir /backup && cd /backup
Скачаем пакет из репозитория https://repo.yandex.ru/yandex-disk:
wget https://repo.yandex.ru/yandex-disk/yandex-disk-latest.x86_64.rpm
и установим его:
rpm -i yandex-disk-latest.x86_64.rpm
yandex-disk setup
[root@dtgp backup]# yandex-disk setup
Использовать прокси-сервер? [y/N]:
Авторизация
Если у вас ещё нет аккаунта на Яндексе, его можно завести по ссылке https://passport.yandex.ru/passport?mode=register
Откройте страницу 'https://ya.ru/device' и введите код ‘23oagjxw’ в течение 300 секунд. Убедитесь, что вы авторизованы в браузере с нужным аккаунтом.Токен сохранен в /root/.config/yandex-disk/passwd
Настройка Яндекс.Диска
Введите путь к папке Яндекс.Диска (Оставьте пустым для использования папки '/root/Yandex.Disk'): /backup
Запускать Яндекс.Диск при входе в систему? [Y/n]: Y
Запуск демона...Готово
Теперь Яндекс Диск подключен к директории.
Настроим само резервное копирование файлов. Создадим скрипт для создания резервных копий.
touch /root/backup.sh
chmod +x /root/backup.sh
Мы будем сохранять файлы из папки /var/www и всю базу mysql. Отредактируем скрипт:
vim /root/backup.sh
#!/bin/bash
USER="zend"
PASSWORD=""
OUTPUT="/backup/DBs"
tar -czf /backup/mysitesru_`date +%Y-%m-%d`.tar.gz /var/www
databases=`mysql -u $USER -p$PASSWORD -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
for db in $databases; do
if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "mysql" ]] && [[ "$db" != _* ]] ; then
echo "Dumping database: $db"
mysqldump -u $USER -p$PASSWORD --databases $db > `date +%Y%m%d`.$db.sql
gzip $OUTPUT/`date +%Y%m%d`.$db.sql
fi
done
find /backup/ -type f -mtime +14 -exec rm '{}' \;
USER - ваш логин от mysql
PASSWORD - пароль от mysql USER
Теперь добавим задание в CRON
crontab -e
00 2 * * * sh /root/backup.sh
Данная команда будет запускать наш скрипт каждый день в 2 часа ночи.
Посмотреть список
crontab -l