Резервное копирование на 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 ПОЛЬЗОВАТЕЛЬ --password=ПАРОЛЬ --all-databases | gzip > $FILE2

# Теперь отправим эти два файла на Yandex диск (файлы указываем через запятые)
curl --user ПОЛЬЗОВАТЕЛЬ:ПАРОЛЬ -T "{$FILE1,$FILE2}" https://webdav.yandex.ru/

# Теперь удалим их, так как они уже на Yandex диске
unlink $FILE1
unlink $FILE2 

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

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

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