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" # Имя сервиса для заголовка
|
||||
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
|
||||
@@ -42,8 +43,9 @@ LOG_FILE="/var/log/rclone-backup.log" # Лог-файл
|
||||
├── rclone-backup/ # Скрипты и конфиги окружения
|
||||
│ ├── rclone-backup.sh # Основной скрипт
|
||||
│ └── config.env # Конфиг
|
||||
├── rclone-data/rclone-backup.log # лог-файл
|
||||
├── rclone-data/rclone.conf # конфиг rclone
|
||||
├── rclone-data/
|
||||
│ ├── rclone-backup.log # лог-файл
|
||||
│ └── rclone.conf # конфиг rclone
|
||||
├── docker-compose.yml
|
||||
└── Dockerfile # устаналиваем curl
|
||||
```
|
||||
@@ -68,10 +70,8 @@ services:
|
||||
- ./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
|
||||
# директория с конфигом и логом rclone
|
||||
- ./rclone-data:/config/rclone:rw
|
||||
# непосредственно сама директория с бэкапами для синхронизации
|
||||
- /opt/docker/samba/openwrt/:/mnt/backup/openwrt:ro
|
||||
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
|
||||
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
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>Скриншоты ntfy</summary>
|
||||
<table border="0">
|
||||
<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>
|
||||
</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>
|
||||
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"
|
||||
REMOTE="yandex:backup_folder"
|
||||
REMOTE="google:backup_folder"
|
||||
MAX_AGE="24h"
|
||||
BW_LIMIT="5M"
|
||||
NTFY_URL="https://ntfy.sh/topic"
|
||||
AUTH="user:password"
|
||||
SERVICE="MyServer"
|
||||
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" \
|
||||
--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}
|
||||
@@ -83,4 +84,4 @@ curl -s -u "$AUTH" \
|
||||
-H "Priority: $PRIORITY" \
|
||||
-H "Tags: $TAGS" \
|
||||
-d "$MESSAGE" \
|
||||
"$NTFY_URL" > /dev/null
|
||||
"$NTFY_URL" > /dev/null
|
||||
|
||||
Reference in New Issue
Block a user