6f2c74d457b28c243062f53da1c7a45f60535d31
rclone-backup
Скрипт для автоматизации бэкапов с помощью rclone в облако Яндекс.Диск с уведомлениями в ntfy.
Конфиг
SOURCE="/mnt/backup/data" # Источник
REMOTE="yandex:backup_folder" # Назначение
MAX_AGE="24h" # Срок актуальности файлов
BW_LIMIT="5M" # Ограничение скорости
NTFY_URL="https://ntfy.sh/topic" # Ссылка на топик ntfy
AUTH="user:password" # Заголовок с авторизацией для ntfy
SERVICE="MyServer" # Имя сервиса для заголовка
FILTER="{*.tar.gz,*.zst,*.lst}" # Маска для файлов
LOG_FILE="/var/log/rclone-backup.log" # Лог-файл
Использование
Запуск бэкапа вручную:
./backup.sh my-backup.env
Добавление в Cron
Для ежедневного запуска в 05:00:
0 5 * * * /opt/rclone-backup/rclone-backup.sh /opt/rclone-backup/config.env
Docker
Структура:
.
├── rclone-backup/ # Скрипты и конфиги окружения
│ ├── rclone-backup.sh # Основной скрипт
│ └── config.env # Конфиг
├── rclone-data/rclone-backup.log # лог-файл
├── rclone-data/rclone.conf # конфиг rclone
├── docker-compose.yml
└── Dockerfile # устаналиваем curl
Dockerfile:
FROM rclone/rclone:latest
RUN apk add --no-cache curl
docker-compose.yml:
services:
rclone-backup:
build: .
container_name: rclone-backup
restart: "no"
volumes:
# сам скрипт
- ./rclone-backup/rclone-backup.sh:/usr/local/bin/rclone-backup.sh:ro
# конфиг для скрипта
- ./rclone-backup/config.env:/opt/rclone-backup/config.env:ro
# лог-файл. предварительно создать touch ./rclone-backup.log
- ./rclone-backup.log:/var/log/rclone-backup.log
# конфиг самого rclone, хранящий настройки для облака
- ./rclone-data/rclone.conf:/config/rclone/rclone.conf:ro
# непосредственно сама директория с бэкапами для синхронизации
- /opt/docker/samba/openwrt/:/mnt/backup/openwrt:ro
entrypoint: ["/bin/sh", "/usr/local/bin/rclone-backup.sh"]
command: ["/opt/rclone-backup/config.env"]
Использование
docker compose -f /opt/docker/rclone/docker-compose.yml run --rm rclone-backup
Вывод
Пример лога:
2026/04/16 21:28:11 Cloning BananaWrt
2026/04/16 21:28:15 NOTICE: Yandex backup_bananawrt: 0 differences found
2026/04/16 21:28:15 NOTICE: Yandex backup_bananawrt: 82 matching files
2026/04/16 21:28:51 Cloning Proxmox
2026/04/16 21:29:25 NOTICE: Yandex backup_proxmox: 0 differences found
2026/04/16 21:29:25 NOTICE: Yandex backup_proxmox: 51 matching files
Languages
Shell
100%

