Compare commits
10
Commits
6f2c74d457
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4b66f7f61f | ||
|
|
d1166e84cb | ||
|
|
8926cf87a3 | ||
|
|
81d9947b90 | ||
|
|
b68c12dcf0 | ||
|
|
58b39a94ce | ||
|
|
fd5ac728da | ||
|
|
f913e08505 | ||
|
|
349b642a65 | ||
|
|
f3a6229aeb |
@@ -14,6 +14,7 @@ AUTH="user:password" # Заголовок с авторизац
|
|||||||
SERVICE="MyServer" # Имя сервиса для заголовка
|
SERVICE="MyServer" # Имя сервиса для заголовка
|
||||||
FILTER="{*.tar.gz,*.zst,*.lst}" # Маска для файлов
|
FILTER="{*.tar.gz,*.zst,*.lst}" # Маска для файлов
|
||||||
LOG_FILE="/var/log/rclone-backup.log" # Лог-файл
|
LOG_FILE="/var/log/rclone-backup.log" # Лог-файл
|
||||||
|
ADVANCED_CLOUD_FLAG="" # Дополнительные флаги для выбранного облака
|
||||||
```
|
```
|
||||||
|
|
||||||
## Использование
|
## Использование
|
||||||
@@ -21,7 +22,7 @@ LOG_FILE="/var/log/rclone-backup.log" # Лог-файл
|
|||||||
### Запуск бэкапа вручную:
|
### Запуск бэкапа вручную:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./backup.sh my-backup.env
|
./backup.sh config.env
|
||||||
```
|
```
|
||||||
|
|
||||||
### Добавление в Cron
|
### Добавление в Cron
|
||||||
@@ -42,8 +43,9 @@ LOG_FILE="/var/log/rclone-backup.log" # Лог-файл
|
|||||||
├── rclone-backup/ # Скрипты и конфиги окружения
|
├── rclone-backup/ # Скрипты и конфиги окружения
|
||||||
│ ├── rclone-backup.sh # Основной скрипт
|
│ ├── rclone-backup.sh # Основной скрипт
|
||||||
│ └── config.env # Конфиг
|
│ └── config.env # Конфиг
|
||||||
├── rclone-data/rclone-backup.log # лог-файл
|
├── rclone-data/
|
||||||
├── rclone-data/rclone.conf # конфиг rclone
|
│ ├── rclone-backup.log # лог-файл
|
||||||
|
│ └── rclone.conf # конфиг rclone
|
||||||
├── docker-compose.yml
|
├── docker-compose.yml
|
||||||
└── Dockerfile # устаналиваем curl
|
└── Dockerfile # устаналиваем curl
|
||||||
```
|
```
|
||||||
@@ -68,10 +70,8 @@ services:
|
|||||||
- ./rclone-backup/rclone-backup.sh:/usr/local/bin/rclone-backup.sh:ro
|
- ./rclone-backup/rclone-backup.sh:/usr/local/bin/rclone-backup.sh:ro
|
||||||
# конфиг для скрипта
|
# конфиг для скрипта
|
||||||
- ./rclone-backup/config.env:/opt/rclone-backup/config.env:ro
|
- ./rclone-backup/config.env:/opt/rclone-backup/config.env:ro
|
||||||
# лог-файл. предварительно создать touch ./rclone-backup.log
|
# директория с конфигом и логом rclone
|
||||||
- ./rclone-backup.log:/var/log/rclone-backup.log
|
- ./rclone-data:/config/rclone:rw
|
||||||
# конфиг самого rclone, хранящий настройки для облака
|
|
||||||
- ./rclone-data/rclone.conf:/config/rclone/rclone.conf:ro
|
|
||||||
# непосредственно сама директория с бэкапами для синхронизации
|
# непосредственно сама директория с бэкапами для синхронизации
|
||||||
- /opt/docker/samba/openwrt/:/mnt/backup/openwrt:ro
|
- /opt/docker/samba/openwrt/:/mnt/backup/openwrt:ro
|
||||||
entrypoint: ["/bin/sh", "/usr/local/bin/rclone-backup.sh"]
|
entrypoint: ["/bin/sh", "/usr/local/bin/rclone-backup.sh"]
|
||||||
@@ -80,6 +80,13 @@ services:
|
|||||||
|
|
||||||
### Использование
|
### Использование
|
||||||
|
|
||||||
|
Скачиваем образ и собираем с `curl`:
|
||||||
|
```bash
|
||||||
|
docker pull rclone/rclone:latest
|
||||||
|
docker compose build --no-cache rclone-backup
|
||||||
|
```
|
||||||
|
|
||||||
|
Запускаем:
|
||||||
```bash
|
```bash
|
||||||
docker compose -f /opt/docker/rclone/docker-compose.yml run --rm rclone-backup
|
docker compose -f /opt/docker/rclone/docker-compose.yml run --rm rclone-backup
|
||||||
```
|
```
|
||||||
@@ -97,18 +104,15 @@ docker compose -f /opt/docker/rclone/docker-compose.yml run --rm rclone-backup
|
|||||||
2026/04/16 21:29:25 NOTICE: Yandex backup_proxmox: 51 matching files
|
2026/04/16 21:29:25 NOTICE: Yandex backup_proxmox: 51 matching files
|
||||||
```
|
```
|
||||||
|
|
||||||
<details>
|
<table>
|
||||||
<summary>Скриншоты ntfy</summary>
|
<tr>
|
||||||
<table border="0">
|
<td>
|
||||||
<tr>
|
<p align="center"><b>Успешная синхронизация</b></p>
|
||||||
<td>
|
<img src="./assets/ntfy_success.jpg" alt="ntfy success" width="400">
|
||||||
<p align="center"><b>Успешно</b></p>
|
</td>
|
||||||
<img src="./assets/ntfy_success.jpg" alt="ntfy success" width="400">
|
<td>
|
||||||
</td>
|
<p align="center"><b>Ошибка при синхронизации</b></p>
|
||||||
<td>
|
<img src="./assets/ntfy_warning.jpg" alt="ntfy warning" width="400">
|
||||||
<p align="center"><b>Ошибки</b></p>
|
</td>
|
||||||
<img src="./assets/ntfy_warning.jpg" alt="ntfy warning" width="400">
|
</tr>
|
||||||
</td>
|
</table>
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</details>
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 58 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 183 KiB After Width: | Height: | Size: 188 KiB |
+3
-2
@@ -1,9 +1,10 @@
|
|||||||
SOURCE="/mnt/backup/data"
|
SOURCE="/mnt/backup/data"
|
||||||
REMOTE="yandex:backup_folder"
|
REMOTE="google:backup_folder"
|
||||||
MAX_AGE="24h"
|
MAX_AGE="24h"
|
||||||
BW_LIMIT="5M"
|
BW_LIMIT="5M"
|
||||||
NTFY_URL="https://ntfy.sh/topic"
|
NTFY_URL="https://ntfy.sh/topic"
|
||||||
AUTH="user:password"
|
AUTH="user:password"
|
||||||
SERVICE="MyServer"
|
SERVICE="MyServer"
|
||||||
FILTER="{*.tar.gz,*.zst,*.lst}"
|
FILTER="{*.tar.gz,*.zst,*.lst}"
|
||||||
LOG_FILE="/var/log/rclone-backup.log"
|
LOG_FILE="/var/log/rclone-backup.log"
|
||||||
|
ADVANCED_CLOUD_FLAG='--drive-use-trash=false --drive-chunk-size 64M --drive-stop-on-upload-limit'
|
||||||
|
|||||||
+4
-3
@@ -26,7 +26,8 @@ SYNC_ERROR=$(rclone sync "$SOURCE" "$REMOTE" \
|
|||||||
--bwlimit "$BW_LIMIT" \
|
--bwlimit "$BW_LIMIT" \
|
||||||
--delete-before \
|
--delete-before \
|
||||||
--delete-excluded \
|
--delete-excluded \
|
||||||
--checksum $YANDEX_OPTS \
|
--checksum \
|
||||||
|
$ADVANCED_CLOUD_FLAG \
|
||||||
-q 2>&1)
|
-q 2>&1)
|
||||||
|
|
||||||
if [ -n "$SYNC_ERROR" ]; then
|
if [ -n "$SYNC_ERROR" ]; then
|
||||||
@@ -50,7 +51,7 @@ CHECK_OUT=$(rclone check "$SOURCE" "$REMOTE" \
|
|||||||
|
|
||||||
echo "$CHECK_OUT" >> "$LOG_FILE"
|
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}')
|
MATCH=$(echo "$CHECK_OUT" | grep -oE '[0-9]+ matching files' | awk '{print $1}')
|
||||||
|
|
||||||
DIFFS=${DIFFS:-0}
|
DIFFS=${DIFFS:-0}
|
||||||
@@ -83,4 +84,4 @@ curl -s -u "$AUTH" \
|
|||||||
-H "Priority: $PRIORITY" \
|
-H "Priority: $PRIORITY" \
|
||||||
-H "Tags: $TAGS" \
|
-H "Tags: $TAGS" \
|
||||||
-d "$MESSAGE" \
|
-d "$MESSAGE" \
|
||||||
"$NTFY_URL" > /dev/null
|
"$NTFY_URL" > /dev/null
|
||||||
|
|||||||
Reference in New Issue
Block a user