## Шаг 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 для Яндекс.Диска Запустите 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`