Приведу пример скрипта для создания резервных копий на 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