Резервное копирование на Yandex диск

Приведу пример скрипта для создания резервных копий на Yandex диск.

На тесте использую операционную систему Ubuntu и выполню команды от root пользователя через sudo.

В системе должен быть установлен curl или установим его командой:

sudo apt-get install curl

Сначала создадим пустой файл для скрипта:

sudo touch backup_to_yandex.sh

Укажем минимальные права доступа к файлу, чтобы другие пользователи не могли открыть, ведь в файле будет хранится пароль к Yandex:

sudo chmod 0700 backup_to_yandex.sh

Откроем файл в каком нибудь текстовом редакторе, например nano (клавиши Ctrl+X для выхода, y/n для сохранения или отмены изменений):

sudo nano backup_to_yandex.sh

И добавим следующее содержимое в файл (если работать через putty, то можно вставить содержимое буфера обмена кликнув правой кнопкой мыши):

#!/bin/bash
 
# Путь к файлам присвоим переменным чтобы в дальнейшем их было проще указывать по несколько раз
$FILE1=/tmp/etc_`date +%Y-%b`.tar.gz
$FILE2=/tmp/sql_`date +%Y-%b`.sql.gz
 
# Например сначала запакуем в архив директорию /etc
tar -czf $FILE1 /etc
 
# Сделаем дамп всех mysql баз
mysqldump -u USERNAME --password=PASSWORD --all-databases | gzip > $FILE2
 
# Теперь отправим эти два файла на Yandex диск (файлы указываем через запятые)
curl --user USER:PASSWORD -T "{$FILE1,$FILE2}" https://webdav.yandex.ru/
 
# Теперь удалим их, так как они уже на Yandex диске
unlink $FILE1
unlink $FILE2

Можно также при архивировании устанавливать пароль на архив, смотрите мои более подробные статьи на эту тему:
RAR и ZIP архивирование в Linux
RAR архивы в Linux Ubuntu

Скрипт можно добавить в планировщик Cron для автоматического запуска — Использование и настройка CRON

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

Добавить комментарий