4.5 KiB
Шаг 1. Установка rclone
sudo apt update sudo apt install rclone
Проверьте версию:
rclone version
Рекомендуется использовать последнюю стабильную версию rclone (если в репозиториях старая — скачайте с официального сайта).
Шаг 2. Создание OAuth-приложения в Яндексе
-
Перейдите на https://oauth.yandex.ru/client/new
-
Заполните поля:
- Название приложения: например,
rclone-sync - Платформа: выберите
Другие - Redirect URI:
http://127.0.0.1:53682/
- В разделе "Запрашиваемые права" оставьте только:
Яндекс.Диск WebDAV APIЯндекс.Диск REST APIИнтерфейс дистрибуции ЯндексаЯндекс.ОблакоБотоплатформа
- Создайте приложение и сохраните данные:
- *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:
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