Files
OBS/3. LINUX/UBUNTU/2. Synch/2.1 Синхронизация keepasxc > yandex disk.md
2025-08-04 23:10:14 +04:00

151 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## Шаг 1. Установка rclone
`sudo apt update sudo apt install rclone`
Проверьте версию:
`rclone version`
Рекомендуется использовать последнюю стабильную версию rclone (если в репозиториях старая — скачайте с официального сайта).
## Шаг 2. Создание OAuth-приложения в Яндексе
1. Перейдите на https://oauth.yandex.ru/client/new
2. Заполните поля:
- Название приложения: например, `rclone-sync`
- Платформа: выберите `Другие`
- Redirect URI: `http://127.0.0.1:53682/`
1. В разделе "Запрашиваемые права" оставьте только:
- `Яндекс.Диск WebDAV API`
- `Яндекс.Диск REST API`
- `Интерфейс дистрибуции Яндекса`
- `Яндекс.Облако`
- `Ботоплатформа`
1. Создайте приложение и сохраните данные:
- **Client ID*
- **Client Secret**
---
## Шаг 3. Настройка rclone remote для Яндекс.Диска
Запустите:
bash
Копировать
`rclone config`
- Выберите `n` — создать новый remote
- Имя: `yandex` (или любое другое)
- Тип: `yandex` (ищите в списке)
- Введите **Client ID**
- Введите **Client Secret**
- Автоматическая настройка (`auto config`) — выберите `y` если есть браузер на сервере, иначе `n` и откройте ссылку вручную
- Авторизуйтесь в браузере, подтвердите права
- Завершите настройку
---
## Шаг 4. Подготовка локальной и удалённой папок
- Локальная папка — создайте или выберите, например:
bash
Копировать
`mkdir -p "/home/stitch505/Документы/Все файлы"`
- Удалённая папка — создайте на Яндекс.Диске для изоляции, например:
bash
Копировать
`rclone mkdir yandex:"Все файлы"`
---
## Шаг 5. Первая двусторонняя синхронизация с пересозданием метаданных
Запустите:
bash
Копировать
`rclone bisync "/home/stitch505/Документы/Все файлы" yandex:"Все файлы" --progress --resync`
- Параметр `--resync` нужен для первой синхронизации — создаёт метаданные для дальнейшей работы.
---
## Шаг 6. Регулярная автоматизация с логированием
### Создайте скрипт `/home/stitch505/scripts/yandex_sync.sh`:
bash
Копировать
`#!/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 --`
### Сделайте скрипт исполняемым:
bash
Копировать
`chmod +x /home/stitch505/scripts/yandex_sync.sh`
---
## Шаг 7. Настройка cron для запуска каждые 5 минут
bash
Копировать
`crontab -e`
Добавьте:
cron
Копировать
`*/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`
Просматривать можно командой:
bash
Копировать
`tail -n 50 /home/stitch505/scripts/yandex_sync_YYYYMMDD_HHMMSS.log`