Rclone в Linux
Rclone
программа для работы с облачными хранилищами. Поддерживает Dropbox, Яндекс.Диск, Google Drive, и много других. Дополнительно существует GUI-оболочка для визуализации.
Программа с открытыми исходниками, есть в версиях под Linux, Mac OS, Windows, официальный сайт Rclone.
В данной инструкции рассмотрим разные примеры настройки утилиты rclone
для хранения архивов в облаке. В нашем примере мы будем работать с Linux.
Для установки достаточно ввести команду:
curl https://rclone.org/install.sh | bash
Мы должны увидеть что-то на подобие:
rclone v1.59.2 has successfully installed.
Now run "rclone config" for setup. Check https://rclone.org/docs/ for more details.
Настройки для работы с Яндекс диск
Для работы с яндекс диском необходима авторизация через браузер OAuth
, страница в Яндекс. Для того, чтобы запустить утилиту на сервере без наличия браузера, мы должны сначала установить rclone
на компьютер с браузером.
На компьютере с браузером запускаем утилиту:
rclone config
Создаем новую конфигурацию:
n/s/q> n
Даем понятное название для нашего соединения:
name> YandexDisk
Среди списка возможных шаблонов выбираем Yandex Disk
, на момент написания инструкции шаблон находится под номером 56
:
Storage> 56
Идентификатор клиента оставляем пустыми:
client_id>
Пароль оставляем пустыми:
client_secret>
На запрос внесениея расширенных настроек отвечаем отрицательно:
Edit advanced config?
y) Yes
n) No (default)
y/n> n
На вопрос использования автоконфигурации отвечаем y
:
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
y) Yes (default)
n) No
y/n> y
Откроется окно браузера, вводим наши логин и пароль для доступа к Яндекс диску:
Мы должны увидеть сообщение об успешном прохождении аутентификации OAuth
:
Сохраняем настройки для YandexDisk
:
Keep this "YandexDisk" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y
Закрываем браузер и выходим из конфигурирования rclone
:
e/n/d/r/c/s/q> q
Смотрим содержимое конфигурационного файла:
cat ~/.config/rclone/rclone.conf
Мы увидим что-то на подобие, конфигураций может быть несколько — нас интересует с тем именем, которое мы задавали в настройке выше:
[YandexDisk]
type = yandex
token = {"access_token":"AQAE5oIyAALSwlFhI9k0ssqBbqEyY","token_type":"bearer","refresh_token":"1:Jmlj4bnDSJIPvL:bsnTE1lkzA_5ZjikoExn2zWQIab0qReJJdAQtZnPd3:51Fx5SUiuKS8ZAtw","expiry":"2022-10-29T15:29:05.484212934+03:00"}
Копируем содержимое и переходим на целевой сервер. Открываем конфигурационный файл для rclone
:
nano ~/.config/rclone/rclone.conf
Если в системе уже есть конфигурационный файл и его путь отличается от дефолтного, можено ввести команду, которая покажет путь до него:
rclone --help | grep -e '--config'
Вносим содержимое файла rclone.conf
, которое скопировали на компьютере с браузером, после этого можно проверить работоспособность командой:
rclone lsd YandexDisk:
Смотрим список папок в облаке:
rclone lsd YandexDisk:
Создаем новую папку в облаке для бекапов:
rclone mkdir YandexDisk:backup
Команды для работы с Rclone
Название аккаунта облака в командах, пишется обязательно с двоеточием.
Файлы и папки
Посмотреть все папки на удаленном сервере:
rclone lsd YandexDisk:
Создание новой папки:
rclone mkdir YandexDisk:dir
Просмотр списка файлов в папке:
rclone ls YandexDisk:dir
Копирование и синхронизация
Синтаксис довольно простой, есть две основные команду для синхранизации sync
, для копирования copy
. Внимательнее с ОТКУДА
и КУДА
, чтобы данные передавались строго в нужную сторону:
rclone copy ОТКУДА КУДА
rclone sync ОТКУДА КУДА
За двоеточием можно указать путь, чтобы копировать или синхронизировать данные только в указанном каталоге:
rclone copy YandexDisk:dir /home/vadik/Yandex-main/dir
rclone sync /home/vadik/Yandex-main/dir YandexDisk:dir
Не синхронизировать файлы младше 1 дня:
rclone sync /home/vadik/Yandex-main/dir YandexDisk:dir --min-age 1d --delete-excluded
Не синхронизировать файлы старше 7 дней:
rclone sync /home/vadik/Yandex-main/dir YandexDisk:dir --max-age 7d --delete-excluded
Удалить файлы младше 7 дней:
rclone delete YandexDisk:dir --max-age 7d
Удалить файлы старше 7 дней:
rclone delete YandexDisk:dir --min-age 7d