Auto base sync: 2025-08-05 12:09:56

This commit is contained in:
https://gitea.stitch505.su:3000/Stitch505/OBS.git
2025-08-05 12:09:57 +04:00
parent 26c94e068c
commit 6228439a71
4 changed files with 43 additions and 147 deletions

View File

@@ -1,118 +0,0 @@
## Шаг 1. Установка rclone
`sudo apt update sudo apt install rclone`
Проверьте версию:
`rclone version`
Рекомендуется использовать последнюю стабильную версию rclone (если в репозиториях старая — скачайте с официального сайта).
## Шаг 2. Создание OAuth-приложения в Яндексе
1. Перейдите на https://oauth.yandex.ru/client/new
2. Заполните поля:
- Название приложения: например, `rclone-sync`
- Платформа: выберите `web`
- Redirect URI: `http://127.0.0.1:53682/`
1. В разделе "Запрашиваемые права" оставьте только:
- `Яндекс.Диск WebDAV API`
- `Яндекс.Диск REST API`
- `Интерфейс дистрибуции Яндекса`
- `Яндекс.Облако`
- `Ботоплатформа`
1. Создайте приложение и сохраните данные:
- **Client ID*
- **Client Secret**
## Шаг 3. Настройка rclone remote для Яндекс.Диска
Запустите rclone:
`rclone config`
- Выберите `n` — создать новый remote
- Имя: `yandex` (или любое другое)
- Тип: `yandex` (ищите в списке)
- Введите **Client ID**
- Введите **Client Secret**
- Автоматическая настройка (`auto config`) — выберите `y` если есть браузер на сервере, иначе `n` и откройте ссылку вручную
- Авторизуйтесь в браузере, подтвердите права
- Завершите настройку
## Шаг 4. Подготовка локальной и удалённой папок
- Локальная папка — создайте или выберите, например:
`mkdir -p "/home/stitch505/Документы/Все файлы"`
- Удалённая папка — создайте на Яндекс.Диске для изоляции, например:
`rclone mkdir yandex:"Все файлы"`
---
## Шаг 5. Первая двусторонняя синхронизация с пересозданием метаданных
Запустите:
`rclone bisync "/home/stitch505/Документы/Все файлы" yandex:"Все файлы" --progress --resync`
- Параметр `--resync` нужен для первой синхронизации — создаёт метаданные для дальнейшей работы.
## Шаг 6. Регулярная автоматизация с логированием
### Создайте скрипт `/home/stitch505/scripts/yandex_sync.sh`:
```
#!/bin/bash
LOGDIR="/home/stitch505/scripts"
DATE=$(date '+%Y%m%d_%H%M%S')
SYNC_LOG="$LOGDIR/yandex_sync_$DATE.log"
RCLONE_LOG="$LOGDIR/yandex_rclone_$DATE.log"
echo "=== Sync started at $(date '+%Y-%m-%d %H:%M:%S') ===" | tee -a "$SYNC_LOG"
rclone bisync "/home/stitch505/Документы/Все файлы" yandex:"Все файлы" --progress --log-file="$RCLONE_LOG" --log-level=INFO
if [ $? -eq 0 ]; then
echo "$(date '+%Y-%m-%d %H:%M:%S'): Sync completed successfully" | tee -a "$SYNC_LOG"
else
echo "$(date '+%Y-%m-%d %H:%M:%S'): Sync encountered errors" | tee -a "$SYNC_LOG"
fi
echo "=== Sync finished at $(date '+%Y-%m-%d %H:%M:%S') ===" | tee -a "$SYNC_LOG"
echo "" | tee -a "$SYNC_LOG"
# Ротация логов — хранить не более 15 файлов
cd "$LOGDIR" || exit 1
ls -1tr yandex_sync_*.log | head -n -15 | xargs -r rm --
ls -1tr yandex_rclone_*.log | head -n -15 | xargs -r rm --
```
### Сделайте скрипт исполняемым:
`chmod +x /home/stitch505/scripts/yandex_sync.sh`
## Шаг 7. Настройка cron для запуска каждые 5 минут
`crontab -e`
Добавьте:
`*/5 * * * * /home/stitch505/scripts/yandex_sync.sh`
## Шаг 8. Проверка работы и логов
- Основные логи: `/home/stitch505/scripts/yandex_sync_YYYYMMDD_HHMMSS.log`
- Детальные логи rclone: `/home/stitch505/scripts/yandex_rclone_YYYYMMDD_HHMMSS.log`
Просматривать можно командой:
`tail -n 50 /home/stitch505/scripts/yandex_sync_YYYYMMDD_HHMMSS.log`