Rclone с нуля: полный гайд для новичков (установка, настройка, примеры)
Полный гайд по синхронизации с облачными дисками через rclone
rclone — это «швейцарский нож» для работы с облачными хранилищами. Позволяет синхронизировать файлы между вашим компьютером и более чем 70 облачными сервисами (Google Drive, Яндекс.Диск, Dropbox, OneDrive и др.), а также между локальными дисками.
📋 Оглавление
- Что такое rclone
- Установка
- Настройка
- Команды
- Алгоритмы синхронизации
- Локальная синхронизация
- Скрипты
- Режим мониторинга
- Автозапуск
- Проблемы
- Ссылки
- Шпаргалка
Что такое rclone и зачем он нужен
rclone — консольная утилита для синхронизации файлов с облачными хранилищами.
Преимущества:
- ✅ Работает с 70+ облачными сервисами
- ✅ Двусторонняя синхронизация (bisync)
- ✅ Шифрование файлов перед загрузкой
- ✅ Работа через командную строку (удобно для скриптов)
- ✅ Бесплатный и открытый исходный код
Примеры использования:
- Автоматическая синхронизация заметок между ПК и облаком
- Резервное копирование важных файлов в облако
- Синхронизация рабочих папок между несколькими компьютерами
Установка rclone
Ubuntu/Linux
Способ 1: Через пакетный менеджер (рекомендуется)
sudo apt update sudo apt install rclone
Способ 2: Официальный скрипт установки (последняя версия)
curl https://rclone.org/install.sh | sudo bash
Проверка установки
rclone --version
rclone v1.65.0
Windows
Способ 1: Через Chocolatey (рекомендуется)
Если установлен Chocolatey:
choco install rclone
Способ 2: Ручная установка
- Скачайте архив с официального сайта
- Распакуйте в
C:\Program Files\rclone - Добавьте папку в переменную среды
PATH:
Проверка установки
Откройте Command Prompt или PowerShell:
rclone --version
Настройка подключения к облачным сервисам
Google Drive
Шаг 1: Запуск настройки
rclone config
Шаг 2: Создание нового remote
- Введите
n(new remote) - Имя remote:
gdrive(или любое другое) - Тип сервиса: найдите в списке Google Drive (обычно номер 18-20)
- Введите номер и нажмите Enter
Шаг 3: Настройка параметров
Параметр Значение client_id Оставьте пустым (Enter) client_secret Оставьте пустым (Enter) Scope drive (полный доступ) Root folder ID Оставьте пустым Service Account Оставьте пустым Advanced config n (нет)
Шаг 4: Авторизация
- Когда появится сообщение про авторизацию, нажмите Enter
- Откроется браузер со страницей Google
- Войдите в свой аккаунт
- Разрешите доступ rclone
- Скопируйте код авторизации (если потребуется)
- Вставьте код в терминал
Шаг 5: Проверка подключения
rclone lsd gdrive:
Должен показать список папок на вашем Google Drive.
Яндекс.Диск
Шаг 1: Запуск настройки
rclone config
Шаг 2: Создание нового remote
- Введите
n(new remote) - Имя remote:
yandex - Тип сервиса: найдите Yandex Disk (обычно номер 45-50)
- Введите номер и нажмите Enter
Шаг 3: Настройка параметров
Параметр Значение client_id Оставьте пустым client_secret Оставьте пустым Advanced config n (нет)
Шаг 4: Авторизация
- Нажмите Enter для начала авторизации
- Откроется браузер со страницей Яндекс
- Войдите в свой аккаунт
- Разрешите доступ rclone
- Подтвердите авторизацию
Шаг 5: Проверка подключения
rclone lsd yandex:
Основные команды rclone
Команда Описание rclone lsd remote: Показать список папок rclone ls remote:folder Показать список файлов rclone copy source dest Копировать файлы (только новые) rclone sync source dest Синхронизировать (dest = source) rclone bisync path1 path2 Двусторонняя синхронизация rclone move source dest Переместить файлы rclone delete remote:folder Удалить файлы rclone mkdir remote:folder Создать папку rclone size remote:folder Показать размер папки
Примеры:
# Копировать локальную папку в облако rclone copy /home/user/docs gdrive:backup # Синхронизировать (односторонняя) rclone sync /home/user/docs gdrive:docs # Двусторонняя синхронизация rclone bisync /home/user/docs gdrive:docs # Показать содержимое папки rclone ls gdrive:docs
Как работает синхронизация в rclone
Алгоритм работы copy
rclone copy source dest — копирует файлы из источника в назначение, пропуская уже скопированные.
┌─────────────┐ ┌─────────────┐ │ SOURCE │ │ DESTINATION│ │ (source) │ ───► │ (dest) │ └─────────────┘ └─────────────┘
- Сканирование источника — rclone обходит все файлы в исходной папке
- Проверка каждого файла:
- Файлы в destination, которых нет в source — НЕ удаляются
Важно: copy никогда не удаляет файлы в destination!
# Было: SOURCE: file1.txt, file2.txt, file3.txt DEST: file1.txt, file4.txt # После rclone copy source dest: SOURCE: file1.txt, file2.txt, file3.txt DEST: file1.txt, file4.txt, file2.txt, file3.txt # file4.txt остался!
Алгоритм работы sync
rclone sync source dest — делает destination идентичным source (односторонняя синхронизация).
┌─────────────┐ ┌─────────────┐ │ SOURCE │ │ DESTINATION│ │ (source) │ ───► │ (dest) │ │ │ ◄── │ (clean) │ └─────────────┘ └─────────────┘
- Сканирование источника — построение списка всех файлов
- Сканирование назначения — построение списка файлов в destination
- Сравнение списков:
- Файл есть в source, но нет в dest → копировать
- Файл есть в обоих, но разный (размер/хеш) → обновить
- Файл есть в dest, но нет в source → удалить ⚠️
- Применение изменений — выполнение копирований и удалений
Важно: sync безвозвратно удаляет файлы в destination, если их нет в source!
# Было: SOURCE: file1.txt, file2.txt DEST: file1.txt, file3.txt # После rclone sync source dest: SOURCE: file1.txt, file2.txt DEST: file1.txt, file2.txt # file3.txt удалён!
⚠️ Предупреждение: Всегда проверяйте команду с --dry-run перед запуском:
rclone sync source dest --dry-run
Алгоритм работы bisync
rclone bisync path1 path2 — двусторонняя синхронизация, изменения в обоих направлениях.
┌─────────────┐ ┌─────────────┐
│ PATH1 │◄───────►│ PATH2 │
│ (local) │ │ (cloud) │
└─────────────┘ └─────────────┘
▲ ▲
│ │
└──────────┬────────────┘
│
┌──────▼──────┐
│ WORKDIR │
│ (списки) │
└─────────────┘
Шаг 1: Сканирование
1.1. Сканирование Path1 → список файлов A
1.2. Сканирование Path2 → список файлов B
1.3. Загрузка предыдущих списков из workdir:
- prev_path1.txt (список Path1 с прошлой синхронизации)
- prev_path2.txt (список Path2 с прошлой синхронизации)
Шаг 2: Выявление изменений
2.1. Сравнение A с prev_path1 → изменения в Path1
- Новые файлы
- Изменённые файлы (размер/хеш/время)
- Удалённые файлы
2.2. Сравнение B с prev_path2 → изменения в Path2
- Новые файлы
- Изменённые файлы
- Удалённые файлы
Шаг 3: Разрешение конфликтов
3.1. Файл изменён только в Path1 → копируем в Path2
3.2. Файл изменён только в Path2 → копируем в Path1
3.3. Файл изменён в обоих (конфликт):
- Копируем более новую версию (по времени изменения)
- Старую версию сохраняем с суффиксом .bisync1, .bisync2
3.4. Файл удалён в Path1 → удаляем в Path2
3.5. Файл удалён в Path2 → удаляем в Path1
Шаг 4: Применение изменений
4.1. Копирование новых/изменённых файлов Path1 → Path2 4.2. Копирование новых/изменённых файлов Path2 → Path1 4.3. Удаление удалённых файлов 4.4. Сохранение резервных копий при конфликтах
Шаг 5: Обновление списков
5.1. Сохранение текущего списка Path1 → prev_path1.txt 5.2. Сохранение текущего списка Path2 → prev_path2.txt 5.3. Очистка временных файлов
rclone хранит служебные файлы в workdir (по умолчанию ~/.cache/rclone/bisync):
Файл Описание prev_path1.txt Снимок Path1 с прошлой синхронизации prev_path2.txt Снимок Path2 с прошлой синхронизации RCLONE_TEST Файл для проверки доступа (опционально)
Важно: Не удаляйте workdir между синхронизациями! Это приведёт к ошибке и потребует --resync.
Сравнение методов
Характеристика copy sync bisync Направление → → ↔️ Удаление файлов ❌ Нет ✅ Да ✅ Да Конфликты Н/Д Н/Д ✅ Разрешает Идеально для Резервное копирование Зеркалирование Синхронизация между устройствами Безопасность ⭐⭐⭐ Высокая ⭐⭐ Средняя ⭐⭐⭐ Высокая Скорость ⭐⭐⭐ Быстро ⭐⭐⭐ Быстро ⭐⭐ Медленнее
copy: A ──────► B (B получает файлы из A)
(B никогда не чистится)
sync: A ──────► B (B становится точной копией A)
(лишнее в B удаляется)
bisync: A ◄─────► B (Оба становятся идентичными)
(конфликты сохраняются)
Когда использовать каждый метод
- ✅ Создание точного зеркала
- ✅ Публикация файлов (односторонняя)
- ✅ Когда destination — временное хранилище
- ✅ Синхронизация заметок между устройствами
- ✅ Общая папка между несколькими компьютерами
- ✅ Когда изменения могут быть с обеих сторон
⚠️ Критические ошибки и как их избежать
Ошибка 1: Потеря файлов при sync
# ❌ ОПАСНО: Может удалить файлы! rclone sync /home/user/docs gdrive:backup # ✅ БЕЗОПАСНО: Сначала проверьте rclone sync /home/user/docs gdrive:backup --dry-run
Ошибка 2: Удаление workdir при bisync
# ❌ Не делайте так: rm -rf ~/.cache/rclone/bisync # ✅ Если нужно сбросить: rclone bisync path1 path2 --resync
Ошибка 3: Игнорирование логов
# ❌ Без логов сложно отладить rclone bisync path1 path2 # ✅ С логированием: rclone bisync path1 path2 --verbose 2>&1 | tee sync.log
Синхронизация между локальными дисками
rclone может работать не только с облаками, но и с локальными дисками. Это полезно для:
- ✅ Резервного копирования SSD → HDD
- ✅ Синхронизации между внутренним и внешним диском
- ✅ Автоматического бэкапа на флешку
- ✅ Зеркалирования разделов
Настройка локального remote
Локальный диск — это remote типа local. Его можно добавить в конфиг:
rclone config
- Введите
n(new remote) - Имя:
ssdилиhddилиbackup - Тип сервиса: найдите local (обычно номер 1-3)
- Введите номер и нажмите Enter
- Готово!
Пример конфига (~/.config/rclone/rclone.conf):
[ssd] type = local [hdd] type = local
Использование локальных remote
# Копирование с SSD на HDD rclone copy ssd:/home/user/docs hdd:/backup/docs # Двусторонняя синхронизация rclone bisync ssd:/projects hdd:/projects # Синхронизация с удалением rclone sync ssd:/photos hdd:/backup/photos
Прямая работа с путями (без remote)
Remote для локальных дисков не обязателен — можно указывать пути напрямую:
# Linux rclone copy /mnt/ssd/docs /mnt/hdd/backup/docs # Windows rclone copy C:\Users\Name\Docs D:\Backup\Docs
Скрипт для SSD → HDD
Создайте скрипт для автоматической синхронизации между дисками:
#!/bin/bash
# Синхронизация SSD → HDD (локальная)
# Использование: ./sync-disks.sh [--watch]
# ========== НАСТРОЙКИ ==========
SOURCE_DIR="/mnt/ssd/notes" # Исходная папка (SSD)
DEST_DIR="/mnt/hdd/backup/notes" # Папка назначения (HDD)
LOG_FILE="/tmp/disk-sync.log" # Файл лога
WORKDIR="/tmp/rclone-disk-work" # Рабочая папка rclone
POLL_INTERVAL=60 # Интервал проверки (сек)
# ===============================
# Логирование
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"
}
# Проверка rclone
if ! command -v rclone &> /dev/null; then
echo "Ошибка: rclone не найден. Установите: sudo apt install rclone"
exit 1
fi
# Проверка доступности дисков
check_disks() {
if [ ! -d "$SOURCE_DIR" ]; then
log "ERROR: Исходный диск не доступен: $SOURCE_DIR"
return 1
fi
if [ ! -d "$DEST_DIR" ]; then
log "ERROR: Диск назначения не доступен: $DEST_DIR"
return 1
fi
return 0
}
# Синхронизация
do_sync() {
mkdir -p "$WORKDIR"
rclone bisync "$SOURCE_DIR" "$DEST_DIR" \
--workdir "$WORKDIR" \
--exclude '.obsidian/**' \
--exclude '*.log' \
--exclude 'sync-disks.sh' \
--force \
--verbose 2>&1 | while IFS= read -r line; do
log "$line"
done
}
# Режим --watch (постоянная синхронизация)
if [ "$1" == "--watch" ]; then
log "========================================"
log "Запуск постоянной синхронизации дисков"
log "Интервал: ${POLL_INTERVAL} сек"
log "Ctrl+C для остановки"
log "========================================"
# Первая синхронизация
if check_disks; then
do_sync
else
log "ERROR: Диски недоступны"
exit 1
fi
# Цикл
while true; do
sleep $POLL_INTERVAL
# Проверка изменений локально
local_new=$(find "$SOURCE_DIR" -type f -not -path '*/.obsidian/*' -not -name '*.log' -not -name 'sync-disks.sh' -mmin -1 2>/dev/null | wc -l)
if [ "$local_new" -gt 0 ]; then
log "Изменения: $local_new файлов"
if check_disks; then
do_sync
else
log "WARN: Диски недоступны"
fi
fi
done
else
# Одиночная синхронизация
log "========================================"
log "Запуск синхронизации дисков"
log "SSD: $SOURCE_DIR"
log "HDD: $DEST_DIR"
log "========================================"
if ! check_disks; then
log "ERROR: Диски недоступны"
exit 1
fi
log "Синхронизация..."
do_sync
log "Готово!"
log "========================================"
log "Для постоянной синхронизации:"
log " $0 --watch"
log "========================================"
fi
Первый запуск (с --resync):
chmod +x ~/sync-disks.sh # Первая синхронизация rclone bisync /mnt/ssd/notes /mnt/hdd/backup/notes --resync --verbose # Обычный запуск ./sync-disks.sh # Постоянная синхронизация ./sync-disks.sh --watch
Для Windows: скрипт SSD → HDD
@echo off
chcp 65001 >nul
:: Синхронизация SSD → HDD (локальная)
:: Использование: sync-disks.bat [--watch]
:: ========== НАСТРОЙКИ ==========
set SOURCE_DIR=C:\Users\USER\notes
set DEST_DIR=D:\Backup\notes
set LOG_FILE=%TEMP%\disk-sync.log
set WORKDIR=%TEMP%\rclone-disk-work
set POLL_INTERVAL=60
:: ===============================
:: Логирование
setlocal enabledelayedexpansion
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
set "timestamp=[%YYYY%-%MM%-%DD% %HH%:%Min%:%Sec%]"
:: Проверка rclone
where rclone >nul 2>&1
if %ERRORLEVEL% NEQ 0 (
echo Ошибка: rclone не найден. Установите с https://rclone.org/
pause
exit /b 1
)
:: Проверка дисков
if not exist "%SOURCE_DIR%" (
echo Ошибка: Исходный диск не доступен: %SOURCE_DIR%
pause
exit /b 1
)
if not exist "%DEST_DIR%" (
echo Ошибка: Диск назначения не доступен: %DEST_DIR%
pause
exit /b 1
)
:: Синхронизация
:do_sync
if not exist "%WORKDIR%" mkdir "%WORKDIR%"
rclone bisync "%SOURCE_DIR%" "%DEST_DIR%" ^
--workdir "%WORKDIR%" ^
--exclude ".obsidian/**" ^
--exclude "*.log" ^
--exclude "sync-disks.bat" ^
--force ^
--verbose >> "%LOG_FILE%" 2>&1
goto :eof
:: Одиночная синхронизация
if "%1"=="--watch" goto :watch_mode
echo ========================================
echo Запуск синхронизации дисков
echo SSD: %SOURCE_DIR%
echo HDD: %DEST_DIR%
echo ========================================
call :do_sync
echo Готово!
echo ========================================
echo Для постоянной синхронизации:
echo %~nx0 --watch
echo ========================================
pause
goto :eof
:: Режим --watch
:watch_mode
echo ========================================
echo Запуск постоянной синхронизации дисков
echo Интервал: %POLL_INTERVAL% сек
echo Ctrl+C для остановки
echo ========================================
call :do_sync
:loop
timeout /t %POLL_INTERVAL% /nobreak >nul
call :do_sync
goto loop
Первый запуск:
Откройте Command Prompt от имени администратора:
:: Первая синхронизация rclone bisync "C:\Users\USER\notes" "D:\Backup\notes" --resync --verbose :: Обычный запуск sync-disks.bat :: Постоянная синхронизация sync-disks.bat --watch
Типичные сценарии локальной синхронизации
Сценарий Команда SSD → HDD резервная копия rclone copy /mnt/ssd/data /mnt/hdd/backup Синхронизация между дисками rclone bisync /mnt/ssd/docs /mnt/hdd/docs Перемещение с удалением rclone move /mnt/ssd/archive /mnt/hdd/archive Windows: C: → D: rclone copy C:\Users\...\Docs D:\Backup\Docs Внешний USB диск rclone sync /home/user/docs /media/user/USB/backup Сетевой диск (NAS) rclone sync /mnt/nas/backup /mnt/local/backup
Автоматическая синхронизация через скрипт
Для Ubuntu/Linux
nano ~/sync-to-cloud.sh
Вставьте содержимое (замените пути на свои):
#!/bin/bash
# Синхронизация облачного диска через rclone bisync
# Использование: ./sync-to-cloud.sh [--watch]
# ========== НАСТРОЙКИ ==========
LOCAL_DIR="/home/USER/notes" # Локальная папка
RCLONE_REMOTE="gdrive:notes" # Remote и папка в облаке
LOG_FILE="/tmp/cloud-sync.log" # Файл лога
WORKDIR="/tmp/rclone-bisync-work" # Рабочая папка rclone
POLL_INTERVAL=10 # Интервал проверки (сек)
# ===============================
# Логирование
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"
}
# Проверка rclone
if ! command -v rclone &> /dev/null; then
echo "Ошибка: rclone не найден. Установите: sudo apt install rclone"
exit 1
fi
# Проверка подключения
check_connection() {
if rclone lsd "$RCLONE_REMOTE" >/dev/null 2>&1; then
return 0
fi
return 1
}
# Синхронизация
do_sync() {
mkdir -p "$WORKDIR"
rclone bisync "$LOCAL_DIR" "$RCLONE_REMOTE" \
--workdir "$WORKDIR" \
--exclude '.obsidian/**' \
--exclude '*.log' \
--exclude 'sync-to-cloud.sh' \
--force \
--verbose 2>&1 | while IFS= read -r line; do
log "$line"
done
}
# Режим --watch (постоянная синхронизация)
if [ "$1" == "--watch" ]; then
log "========================================"
log "Запуск постоянной синхронизации"
log "Интервал: ${POLL_INTERVAL} сек"
log "Ctrl+C для остановки"
log "========================================"
# Первая синхронизация
if check_connection; then
do_sync
else
log "ERROR: Облачный диск недоступен"
exit 1
fi
# Цикл
while true; do
sleep $POLL_INTERVAL
# Проверка изменений локально
local_new=$(find "$LOCAL_DIR" -type f -not -path '*/.obsidian/*' -not -name '*.log' -not -name 'sync-to-cloud.sh' -mmin -1 2>/dev/null | wc -l)
if [ "$local_new" -gt 0 ]; then
log "Изменения: $local_new файлов"
if check_connection; then
do_sync
else
log "WARN: Диск недоступен"
fi
fi
done
else
# Одиночная синхронизация
log "========================================"
log "Запуск синхронизации"
log "Локально: $LOCAL_DIR"
log "Облако: $RCLONE_REMOTE"
log "========================================"
if ! check_connection; then
log "ERROR: Облачный диск недоступен"
exit 1
fi
log "Синхронизация..."
do_sync
log "Готово!"
log "========================================"
log "Для постоянной синхронизации:"
log " $0 --watch"
log "========================================"
fi
Сохраните и сделайте исполняемым:
chmod +x ~/sync-to-cloud.sh
Первый запуск (с флагом --resync):
rclone bisync "/home/USER/notes" "gdrive:notes" --resync --verbose
Обычный запуск:
./sync-to-cloud.sh
Постоянная синхронизация:
./sync-to-cloud.sh --watch
Для Windows
Создайте файл sync-to-cloud.bat:
@echo off
chcp 65001 >nul
:: Синхронизация облачного диска через rclone bisync
:: Использование: sync-to-cloud.bat [--watch]
:: ========== НАСТРОЙКИ ==========
set LOCAL_DIR=C:\Users\USER\notes
set RCLONE_REMOTE=gdrive:notes
set LOG_FILE=%TEMP%\cloud-sync.log
set WORKDIR=%TEMP%\rclone-bisync-work
set POLL_INTERVAL=10
:: ===============================
:: Логирование
setlocal enabledelayedexpansion
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
set "timestamp=[%YYYY%-%MM%-%DD% %HH%:%Min%:%Sec%]"
:: Проверка rclone
where rclone >nul 2>&1
if %ERRORLEVEL% NEQ 0 (
echo Ошибка: rclone не найден. Установите с https://rclone.org/
pause
exit /b 1
)
:: Синхронизация
:do_sync
if not exist "%WORKDIR%" mkdir "%WORKDIR%"
rclone bisync "%LOCAL_DIR%" "%RCLONE_REMOTE%" ^
--workdir "%WORKDIR%" ^
--exclude ".obsidian/**" ^
--exclude "*.log" ^
--exclude "sync-to-cloud.bat" ^
--force ^
--verbose >> "%LOG_FILE%" 2>&1
goto :eof
:: Одиночная синхронизация
if "%1"=="--watch" goto :watch_mode
echo ========================================
echo Запуск синхронизации
echo Локально: %LOCAL_DIR%
echo Облако: %RCLONE_REMOTE%
echo ========================================
call :do_sync
echo Готово!
echo ========================================
echo Для постоянной синхронизации:
echo %~nx0 --watch
echo ========================================
pause
goto :eof
:: Режим --watch
:watch_mode
echo ========================================
echo Запуск постоянной синхронизации
echo Интервал: %POLL_INTERVAL% сек
echo Ctrl+C для остановки
echo ========================================
call :do_sync
:loop
timeout /t %POLL_INTERVAL% /nobreak >nul
call :do_sync
goto loop
Первый запуск (с флагом --resync):
Откройте Command Prompt от имени администратора:
rclone bisync "C:\Users\USER\notes" "gdrive:notes" --resync --verbose
Обычный запуск:
Дважды кликните на sync-to-cloud.bat или в командной строке:
sync-to-cloud.bat
Постоянная синхронизация:
sync-to-cloud.bat --watch
Постоянная синхронизация (режим мониторинга)
Linux
Запустите скрипт с флагом --watch:
./sync-to-cloud.sh --watch
Для работы в фоне используйте nohup или screen:
# В фоне с nohup nohup ./sync-to-cloud.sh --watch & # В сессии screen screen -S sync ./sync-to-cloud.sh --watch # Ctrl+A, D для отсоединения
Windows
Запустите .bat файл с флагом --watch:
sync-to-cloud.bat --watch
Для работы в фоне создайте .vbs файл:
Set objShell = CreateObject("WScript.Shell")
objShell.Run "cmd /c C:\path\to\sync-to-cloud.bat --watch", 0, False
Автозапуск при загрузке системы
Для автоматического запуска синхронизации при загрузке компьютера используйте системные службы.
Ubuntu: systemd сервис
systemd — современный способ управления службами в Linux. Создадим сервис для фоновой синхронизации.
Шаг 1: Создайте файл сервиса
sudo nano /etc/systemd/system/rclone-sync.service
Шаг 2: Добавьте содержимое
[Unit] Description=rclone автоматическая синхронизация After=network.target Wants=network.target [Service] Type=simple User=USER Group=USER ExecStart=/home/USER/sync-to-cloud.sh --watch Restart=always RestartSec=10 StandardOutput=journal StandardError=journal SyslogIdentifier=rclone-sync [Install] WantedBy=multi-user.target
Замените USER на ваше имя пользователя!
Шаг 3: Включите и запустите сервис
# Перезагрузить systemd (после создания файла) sudo systemctl daemon-reload # Включить автозапуск при загрузке sudo systemctl enable rclone-sync.service # Запустить сервис sudo systemctl start rclone-sync.service # Проверить статус sudo systemctl status rclone-sync.service
Шаг 4: Просмотр логов
# Логи службы journalctl -u rclone-sync.service -f # Последние 50 строк journalctl -u rclone-sync.service -n 50
Управление сервисом
# Остановить sudo systemctl stop rclone-sync.service # Перезапустить sudo systemctl restart rclone-sync.service # Отключить автозапуск sudo systemctl disable rclone-sync.service # Посмотреть логи journalctl -u rclone-sync.service
Пример для синхронизации дисков
Файл /etc/systemd/system/rclone-disk-sync.service:
[Unit] Description=rclone синхронизация SSD → HDD After=local-fs.target Wants=local-fs.target [Service] Type=simple User=USER ExecStart=/home/USER/sync-disks.sh --watch Restart=always RestartSec=10 StandardOutput=journal StandardError=journal SyslogIdentifier=rclone-disk-sync [Install] WantedBy=multi-user.target
Windows: планировщик задач
Способ 1: Через графический интерфейс
- Нажмите Win + R, введите
taskschd.msc, нажмите Enter - В правой панели: Создать задачу...
- Вкладка "Общие":
- Имя:
rclone Sync - Описание:
Автоматическая синхронизация с облаком - ✅ Выполнять для всех пользователей
- ✅ Выполнять вне зависимости от входа пользователя
- ✅ Выполнять с наивысшими правами
- Вкладка "Триггеры":
- Вкладка "Действия":
- Создать...
- Действие: Запуск программы
- Программа или сценарий:
C:\Windows\System32\cmd.exe - Добавить аргументы:
/c "C:\path\to\sync-to-cloud.bat" - Начать в:
C:\path\to\ - Вкладка "Условия":
- ✅ Запускать только при питании от электросети (для ноутбуков)
- ⬜ Останавливать при переходе на питание от батареи
- Вкладка "Параметры":
- Нажмите OK, введите пароль администратора
Способ 2: Через PowerShell (автоматически)
Создайте файл install-service.ps1:
# Путь к скрипту
$scriptPath = "C:\path\to\sync-to-cloud.bat"
$taskName = "rclone Sync"
# Действие задачи
$action = New-ScheduledTaskAction -Execute "cmd.exe" `
-Argument "/c `"$scriptPath`"" `
-WorkingDirectory "C:\path\to"
# Триггер: при запуске системы
$trigger = New-ScheduledTaskTrigger -AtStartup `
-Delay (New-TimeSpan -Seconds 30)
# Настройки
$settings = New-ScheduledTaskSettingsSet `
-AllowStartIfOnBatteries `
-DontStopIfGoingOnBatteries `
-StartWhenAvailable `
-RestartCount 3 `
-RestartInterval (New-TimeSpan -Minutes 1)
# Регистрация задачи
Register-ScheduledTask -TaskName $taskName `
-Action $action `
-Trigger $trigger `
-Settings $settings `
-Description "Автоматическая синхронизация rclone" `
-User "SYSTEM"
Write-Host "Задача '$taskName' создана!"
Запустите от имени администратора:
# Правой кнопкой на PowerShell → Запустить от имени администратора cd C:\path\to .\install-service.ps1
Управление задачей
# Посмотреть задачи
Get-ScheduledTask | Where-Object {$_.TaskName -like "*rclone*"}
# Запустить вручную
Start-ScheduledTask -TaskName "rclone Sync"
# Остановить
Stop-ScheduledTask -TaskName "rclone Sync"
# Удалить задачу
Unregister-ScheduledTask -TaskName "rclone Sync" -Confirm
Linux: cron
cron — классический планировщик задач в Linux.
Шаг 1: Откройте crontab
crontab -e
Шаг 2: Добавьте задания
*/5 * * * * /home/USER/sync-to-cloud.sh >> /tmp/cron-sync.log 2>&1
0 * * * * /home/USER/sync-to-cloud.sh >> /tmp/cron-sync.log 2>&1
Синхронизация каждый день в 3:00:
0 3 * * * /home/USER/sync-to-cloud.sh >> /tmp/cron-sync.log 2>&1
Синхронизация только при подключённом питании (ноутбуки):
*/5 * * * * if on_ac_power; then /home/USER/sync-to-cloud.sh >> /tmp/cron-sync.log 2>&1; fi
Формат cron
* * * * * команда │ │ │ │ │ │ │ │ │ └─ День недели (0-7, 0 и 7 = воскресенье) │ │ │ └─── Месяц (1-12) │ │ └───── День месяца (1-31) │ └─────── Час (0-23) └───────── Минута (0-59)
Примеры
Расписание Cron Каждую минуту * * * * * Каждые 5 минут */5 * * * * Каждый час 0 * * * * Каждый день в 9:00 0 9 * * * Каждое воскресенье в 2:00 0 2 * * 0 1-е число месяца в 0:00 0 0 1 * *
Управление cron
# Показать текущие задания crontab -l # Редактировать crontab -e # Удалить все задания crontab -r # Логи cron grep CRON /var/log/syslog
Частые проблемы и их решение
1. rclone: command not found
sudo apt install rclone
2. Config file not found
mkdir -p ~/.config/rclone rclone config
mkdir %APPDATA%\rclone rclone config
3. Bisync critical error: must run --resync
Выполните команду с флагом --resync:
rclone bisync path1 path2 --resync --verbose
4. Token expired / Authentication failed
rclone config reconnect gdrive:
5. Синхронизация не видит изменения файлов
- Файлы не исключены фильтрами (
--exclude) - Workdir не повреждён (удалите
/tmp/rclone-bisync-work) - Время на ПК синхронизировано
6. Ошибка доступа к Google Drive
- Проверьте подключение к интернету
- Переподключите remote:
rclone config reconnect gdrive: - Убедитесь, что на Drive есть место
📚 Полезные ссылки
- Официальная документация rclone
- Скачать rclone
- Команды rclone
- Настройка Google Drive
- Настройка Яндекс.Диска
🎯 Краткая шпаргалка
Базовые команды
# Установка (Ubuntu) sudo apt install rclone # Установка (Windows Chocolatey) choco install rclone # Настройка rclone config # Проверка подключения rclone lsd gdrive: # Показать файлы rclone ls gdrive:folder
Синхронизация
# Двусторонняя синхронизация rclone bisync /local/path gdrive:remote/path # Первый запуск (с сбросом) rclone bisync /local/path gdrive:remote/path --resync --verbose # Копирование (без удаления) rclone copy /local/path gdrive:backup # Синхронизация (односторонняя с удалением) rclone sync /local/path gdrive:backup # Проверка без изменений rclone bisync /local/path gdrive:remote/path --dry-run
Локальная синхронизация (между дисками)
# SSD → HDD копирование rclone copy /mnt/ssd/docs /mnt/hdd/backup # Двусторонняя синхронизация дисков rclone bisync /mnt/ssd/notes /mnt/hdd/notes # Windows: C: → D: rclone copy C:\Users\Name\Docs D:\Backup\Docs
Автозапуск
# systemd (Ubuntu) - создать сервис sudo nano /etc/systemd/system/rclone-sync.service sudo systemctl enable rclone-sync.service sudo systemctl start rclone-sync.service # cron - редактировать задания crontab -e # cron - каждые 5 минут */5 * * * * /home/user/sync.sh >> /tmp/sync.log 2>&1 # Просмотр логов systemd journalctl -u rclone-sync.service -f
Windows команды
:: Проверка rclone
where rclone
:: Синхронизация
rclone bisync "C:\path\to" "gdrive:remote"
:: Первый запуск
rclone bisync "C:\path\to" "gdrive:remote" --resync --verbose
:: Планировщик (PowerShell)
Get-ScheduledTask | Where-Object {$_.TaskName -like "*rclone*"}
Совет: Всегда тестируйте команды с флагом --dry-run сначала — он покажет, что будет сделано, без реальных изменений.