Files
rclone-backup/README.md
T

118 lines
3.7 KiB
Markdown
Raw Normal View History

2026-04-17 01:48:46 +04:00
# rclone-backup
Скрипт для автоматизации бэкапов с помощью rclone в облако Яндекс.Диск с уведомлениями в ntfy.
## Конфиг
```bash
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" # Лог-файл
2026-04-18 11:03:24 +04:00
ADVANCED_CLOUD_FLAG="" # Дополнительные флаги для выбранного облака
2026-04-17 01:48:46 +04:00
```
## Использование
### Запуск бэкапа вручную:
```bash
2026-04-18 11:03:24 +04:00
./backup.sh config.env
2026-04-17 01:48:46 +04:00
```
### Добавление в Cron
Для ежедневного запуска в 05:00:
```bash
0 5 * * * /opt/rclone-backup/rclone-backup.sh /opt/rclone-backup/config.env
```
2026-04-17 03:12:43 +04:00
## Docker
Структура:
```bash
.
├── rclone-backup/ # Скрипты и конфиги окружения
│ ├── rclone-backup.sh # Основной скрипт
│ └── config.env # Конфиг
2026-04-18 12:37:12 +04:00
├── rclone-data/
│ ├── rclone-backup.log # лог-файл
│ └── rclone.conf # конфиг rclone
2026-04-17 03:12:43 +04:00
├── docker-compose.yml
└── Dockerfile # устаналиваем curl
```
`Dockerfile`:
```Dockerfile
FROM rclone/rclone:latest
RUN apk add --no-cache curl
```
`docker-compose.yml`:
```yaml
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
2026-04-18 12:37:12 +04:00
# директория с конфигом и логом rclone
- ./rclone-data:/config/rclone:rw
2026-04-17 03:12:43 +04:00
# непосредственно сама директория с бэкапами для синхронизации
- /opt/docker/samba/openwrt/:/mnt/backup/openwrt:ro
entrypoint: ["/bin/sh", "/usr/local/bin/rclone-backup.sh"]
command: ["/opt/rclone-backup/config.env"]
```
### Использование
2026-04-17 03:21:58 +04:00
Скачиваем образ и собираем с `curl`:
```bash
docker pull rclone/rclone:latest
2026-04-18 12:33:01 +04:00
docker compose build --no-cache rclone-backup
2026-04-17 03:21:58 +04:00
```
Запускаем:
2026-04-17 03:12:43 +04:00
```bash
docker compose -f /opt/docker/rclone/docker-compose.yml run --rm rclone-backup
```
2026-04-17 01:48:46 +04:00
## Вывод
Пример лога:
```log
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
```
2026-04-17 03:21:58 +04:00
<table>
<tr>
<td>
<p align="center"><b>Успешная синхронизация</b></p>
<img src="./assets/ntfy_success.jpg" alt="ntfy success" width="400">
</td>
<td>
<p align="center"><b>Ошибка при синхронизации</b></p>
<img src="./assets/ntfy_warning.jpg" alt="ntfy warning" width="400">
</td>
</tr>
</table>