Compare commits
12
Commits
882d9ff8c0
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4b66f7f61f | ||
|
|
d1166e84cb | ||
|
|
8926cf87a3 | ||
|
|
81d9947b90 | ||
|
|
b68c12dcf0 | ||
|
|
58b39a94ce | ||
|
|
fd5ac728da | ||
|
|
f913e08505 | ||
|
|
349b642a65 | ||
|
|
f3a6229aeb | ||
|
|
6f2c74d457 | ||
|
|
4cc01cf9d7 |
@@ -14,6 +14,7 @@ AUTH="user:password" # Заголовок с авторизац
|
||||
SERVICE="MyServer" # Имя сервиса для заголовка
|
||||
FILTER="{*.tar.gz,*.zst,*.lst}" # Маска для файлов
|
||||
LOG_FILE="/var/log/rclone-backup.log" # Лог-файл
|
||||
ADVANCED_CLOUD_FLAG="" # Дополнительные флаги для выбранного облака
|
||||
```
|
||||
|
||||
## Использование
|
||||
@@ -21,7 +22,7 @@ LOG_FILE="/var/log/rclone-backup.log" # Лог-файл
|
||||
### Запуск бэкапа вручную:
|
||||
|
||||
```bash
|
||||
./backup.sh my-backup.env
|
||||
./backup.sh config.env
|
||||
```
|
||||
|
||||
### Добавление в Cron
|
||||
@@ -32,6 +33,64 @@ LOG_FILE="/var/log/rclone-backup.log" # Лог-файл
|
||||
0 5 * * * /opt/rclone-backup/rclone-backup.sh /opt/rclone-backup/config.env
|
||||
```
|
||||
|
||||
## Docker
|
||||
|
||||
|
||||
Структура:
|
||||
|
||||
```bash
|
||||
.
|
||||
├── rclone-backup/ # Скрипты и конфиги окружения
|
||||
│ ├── rclone-backup.sh # Основной скрипт
|
||||
│ └── config.env # Конфиг
|
||||
├── rclone-data/
|
||||
│ ├── rclone-backup.log # лог-файл
|
||||
│ └── rclone.conf # конфиг rclone
|
||||
├── 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
|
||||
# директория с конфигом и логом rclone
|
||||
- ./rclone-data:/config/rclone:rw
|
||||
# непосредственно сама директория с бэкапами для синхронизации
|
||||
- /opt/docker/samba/openwrt/:/mnt/backup/openwrt:ro
|
||||
entrypoint: ["/bin/sh", "/usr/local/bin/rclone-backup.sh"]
|
||||
command: ["/opt/rclone-backup/config.env"]
|
||||
```
|
||||
|
||||
### Использование
|
||||
|
||||
Скачиваем образ и собираем с `curl`:
|
||||
```bash
|
||||
docker pull rclone/rclone:latest
|
||||
docker compose build --no-cache rclone-backup
|
||||
```
|
||||
|
||||
Запускаем:
|
||||
```bash
|
||||
docker compose -f /opt/docker/rclone/docker-compose.yml run --rm rclone-backup
|
||||
```
|
||||
|
||||
## Вывод
|
||||
|
||||
Пример лога:
|
||||
@@ -45,8 +104,15 @@ LOG_FILE="/var/log/rclone-backup.log" # Лог-файл
|
||||
2026/04/16 21:29:25 NOTICE: Yandex backup_proxmox: 51 matching files
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>Скриншот ntfy</summary>
|
||||
|
||||

|
||||
</details>
|
||||
<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>
|
||||
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 188 KiB |
+2
-1
@@ -1,5 +1,5 @@
|
||||
SOURCE="/mnt/backup/data"
|
||||
REMOTE="yandex:backup_folder"
|
||||
REMOTE="google:backup_folder"
|
||||
MAX_AGE="24h"
|
||||
BW_LIMIT="5M"
|
||||
NTFY_URL="https://ntfy.sh/topic"
|
||||
@@ -7,3 +7,4 @@ AUTH="user:password"
|
||||
SERVICE="MyServer"
|
||||
FILTER="{*.tar.gz,*.zst,*.lst}"
|
||||
LOG_FILE="/var/log/rclone-backup.log"
|
||||
ADVANCED_CLOUD_FLAG='--drive-use-trash=false --drive-chunk-size 64M --drive-stop-on-upload-limit'
|
||||
|
||||
+3
-2
@@ -26,7 +26,8 @@ SYNC_ERROR=$(rclone sync "$SOURCE" "$REMOTE" \
|
||||
--bwlimit "$BW_LIMIT" \
|
||||
--delete-before \
|
||||
--delete-excluded \
|
||||
--checksum $YANDEX_OPTS \
|
||||
--checksum \
|
||||
$ADVANCED_CLOUD_FLAG \
|
||||
-q 2>&1)
|
||||
|
||||
if [ -n "$SYNC_ERROR" ]; then
|
||||
@@ -50,7 +51,7 @@ CHECK_OUT=$(rclone check "$SOURCE" "$REMOTE" \
|
||||
|
||||
echo "$CHECK_OUT" >> "$LOG_FILE"
|
||||
|
||||
DIFFS=$(echo "$CHECK_OUT" | grep -oE '[0-9]+ differences found' | awk '{print $1}')
|
||||
DIFFS=$(echo "$CHECK_OUT" | grep -oE '[0-9]+ differences found' | awk '{print $1}' | tail -n 1)
|
||||
MATCH=$(echo "$CHECK_OUT" | grep -oE '[0-9]+ matching files' | awk '{print $1}')
|
||||
|
||||
DIFFS=${DIFFS:-0}
|
||||
|
||||
Reference in New Issue
Block a user