From e7c8bf13c75730721c810e0b7ec10e869619448a Mon Sep 17 00:00:00 2001 From: Stitch505 Date: Mon, 4 Aug 2025 23:08:14 +0400 Subject: [PATCH] Auto base sync: 2025-08-04 23:08:14 --- .obsidian/workspace.json | 8 +- ....1 Синхронизация keepasxc > yandex disk.md | 164 ++++++++++++++++++ ....1 Синхронизация keepasxc > yandex disk.md | 0 3 files changed, 168 insertions(+), 4 deletions(-) create mode 100644 3. LINUX/UBUNTU/2. Synch/2.1 Синхронизация keepasxc > yandex disk.md delete mode 100644 3. LINUX/UBUNTU/2.1 Синхронизация keepasxc > yandex disk.md diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 527d9cc..b12a468 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -13,7 +13,7 @@ "state": { "type": "markdown", "state": { - "file": "3. LINUX/UBUNTU/2.1 Синхронизация keepasxc > yandex disk.md", + "file": "3. LINUX/UBUNTU/2. Synch/2.1 Синхронизация keepasxc > yandex disk.md", "mode": "source", "source": false, "backlinks": true, @@ -185,10 +185,11 @@ "mood-tracker:Open Mood Tracking History": false } }, - "active": "21838e3412a13823", + "active": "4f612fc579d5b8a3", "lastOpenFiles": [ + "3. LINUX/UBUNTU/2. Synch", "2. Проекты/VPN_MARZBAN/2. Инструкция Marzban/2. Ручная установка и настройка marzban.md", - "3. LINUX/UBUNTU/2.1 Синхронизация keepasxc > yandex disk.md", + "3. LINUX/UBUNTU/2. Synch/2.1 Синхронизация keepasxc > yandex disk.md", "5. Job/1. Отчетности/2025 год/Август 2025/04.08.2025.md", "5. Job/1. Отчетности/2025 год/Август 2025", "2. Проекты/VPN_MARZBAN/2. Инструкция Marzban/Подключение WARP к Marz.md", @@ -214,7 +215,6 @@ "5. Job/1. Отчетности/2025 год/Июнь 2025/23.06.25.md", "5. Job/1. Отчетности/2025 год/Июнь 2025/20.06.25.md", "5. Job/1. Отчетности/2025 год/Июнь 2025/19.05.26.md", - "5. Job/1. Отчетности/2025 год/Июнь 2025/18.06.25.md", "2. Проекты/VPN_MARZBAN/2. Инструкция Marzban/0. Cache/img/Pasted image 20241007060820.png", "5. Job/1. Отчетности/2025 год/Июнь 2025", "3. LINUX/UBUNTU/4. Ubuntu команды", diff --git a/3. LINUX/UBUNTU/2. Synch/2.1 Синхронизация keepasxc > yandex disk.md b/3. LINUX/UBUNTU/2. Synch/2.1 Синхронизация keepasxc > yandex disk.md new file mode 100644 index 0000000..609716f --- /dev/null +++ b/3. LINUX/UBUNTU/2. Synch/2.1 Синхронизация keepasxc > yandex disk.md @@ -0,0 +1,164 @@ +## Шаг 1. Установка rclone + +`sudo apt update sudo apt install rclone` + +Проверьте версию: + +bash + +Копировать + +`rclone version` + +Рекомендуется использовать последнюю стабильную версию rclone (если в репозиториях старая — скачайте с официального сайта). + +--- + +## Шаг 2. Создание OAuth-приложения в Яндексе + +1. Перейдите на https://oauth.yandex.ru/client/new + +2. Заполните поля: + + +- Название приложения: например, `rclone-sync` + +- Платформа: выберите `Другие` + +- Redirect URI: `http://127.0.0.1:53682/` + + +3. В разделе "Запрашиваемые права" оставьте только: + + +- `Яндекс.Облако` (cloud:disk) + + +4. Создайте приложение и сохраните: + + +- **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` \ No newline at end of file diff --git a/3. LINUX/UBUNTU/2.1 Синхронизация keepasxc > yandex disk.md b/3. LINUX/UBUNTU/2.1 Синхронизация keepasxc > yandex disk.md deleted file mode 100644 index e69de29..0000000