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

4.3 KiB
Raw Blame History

Шаг 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