# Установка через официальный скрипт
curl https://rclone.org/install.sh | sudo bash
# Проверка установки
rclone version
См. официальную документацию: https://rclone.org/install/
# Запустить интерактивную настройку
rclone config
# Следовать инструкциям:
# 1. Выбрать: n (new remote)
# 2. Name: ydisk
# 3. Storage: yandex
# 4. Client ID: (нажать Enter для использования встроенного)
# 5. Client Secret: (нажать Enter для использования встроенного)
# 6. Advanced config: n
# 7. Auto config: y
# 8. Откроется браузер для авторизации
# 9. После авторизации вернуться в терминал
# 10. Quit: q
Если автоматическая настройка не работает (например, на удалённом сервере):
# 1. Запустить на локальной машине с браузером
rclone authorize "yandex"
# 2. Скопировать полученный токен
# 3. На сервере создать конфигурацию
mkdir -p ~/.config/rclone
nano ~/.config/rclone/rclone.conf
# 4. Добавить:
[ydisk]
type = yandex
token = ВСТАВИТЬ_ТОКЕН_СЮДА
# 5. Сохранить (Ctrl+O, Enter, Ctrl+X)
# Список директорий в корне
rclone lsd ydisk:
# Информация о хранилище
rclone about ydisk:
# Создать тестовую директорию
rclone mkdir ydisk:test-connection
# Удалить тестовую директорию
rclone rmdir ydisk:test-connection
# Перейти в директорию проекта
cd $WORKSPACE/projects/infra-yandex-disk
# Проверить что скрипты исполняемые
chmod +x solution/scripts/*.py
chmod +x solution/lib/*.py
# Создать директорию для бэкапов на Яндекс.Диске
rclone mkdir ydisk:backups
# Создать тестовый файл
echo "Test content" > /tmp/test.txt
# Загрузить на Яндекс.Диск
python3 solution/scripts/yd_write.py \
--local /tmp/test.txt \
--remote "test/test.txt"
# Скачать обратно
python3 solution/scripts/yd_read.py \
--remote "test/test.txt" \
--local /tmp/test-downloaded.txt
# Проверить содержимое
cat /tmp/test-downloaded.txt
# Создать тестовую директорию
mkdir -p /tmp/test-sync
echo "File 1" > /tmp/test-sync/file1.txt
echo "File 2" > /tmp/test-sync/file2.txt
# Синхронизировать на Яндекс.Диск (dry run)
python3 solution/scripts/yd_sync.py \
--local /tmp/test-sync \
--remote "test/sync" \
--dry-run
# Синхронизировать (реально)
python3 solution/scripts/yd_sync.py \
--local /tmp/test-sync \
--remote "test/sync"
# Создать бэкап тестовой директории
python3 solution/scripts/yd_backup.py create \
--source /tmp/test-sync \
--destination "test/backups" \
--timestamp
# Список бэкапов
python3 solution/scripts/yd_backup.py list \
--path "test/backups"
# Восстановить последний бэкап
python3 solution/scripts/yd_backup.py restore \
--source "test/backups" \
--destination /tmp/test-restored
# Запустить интерактивный Python
python3
# В Python консоли:
import sys
sys.path.insert(0, '$WORKSPACE/projects/infra-yandex-disk/solution/lib')
from ydisk_client import YDiskClient
client = YDiskClient()
info = client.get_info()
print(info)
files = client.list_files("")
print(f"Files in root: {len(files)}")
# Удалить тестовые файлы
rclone purge ydisk:test
rm -rf /tmp/test.txt /tmp/test-downloaded.txt
rm -rf /tmp/test-sync /tmp/test-restored
# Открыть crontab
crontab -e
# Добавить задачу (ежедневно в 2:00)
0 2 * * * /usr/bin/python3 $WORKSPACE/projects/infra-yandex-disk/solution/scripts/yd_backup.py create --source /opt/myproject --destination backups/myproject --timestamp
# Добавить ротацию (еженедельно, оставить 7 бэкапов)
0 3 * * 0 /usr/bin/python3 $WORKSPACE/projects/infra-yandex-disk/solution/scripts/yd_backup.py rotate --path backups/myproject --keep 7 --force
# Установить правильные права доступа
chmod 600 ~/.config/rclone/rclone.conf
# Убедиться что конфиг не в git
echo ".config/rclone/rclone.conf" >> ~/.gitignore
Для дополнительной безопасности можно настроить crypt remote:
rclone config
# Создать crypt remote поверх ydisk:
# 1. Name: ydisk-crypt
# 2. Storage: crypt
# 3. Remote: ydisk:encrypted
# 4. Password: ВАШЕ_ШИФРОВАНИЕ_ПАРОЛЬ
# 5. Salt: (автогенерация)
Теперь использовать ydisk-crypt: вместо ydisk: для зашифрованного хранения.
# Проверить установку
which rclone
# Переустановить
curl https://rclone.org/install.sh | sudo bash
# Проверить конфигурацию
rclone config show
# Пересоздать remote
rclone config delete ydisk
rclone config # создать заново
# Обновить токен
rclone config reconnect ydisk:
Инфраструктура Яндекс.Диска готова к использованию.
Следующие шаги:
- Операционные процедуры
- Примеры использования
- Детали реализации