ServerAdmin.ru
32.3K subscribers
1.17K photos
73 videos
29 files
3.18K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru

Ресурс включён в перечень Роскомнадзора
Download Telegram
​​Я активно использую как в работе, так и в личных целях, Яндекс.Диск. У него очень низкая стоимость хранения данных. В Linux использую либо API для загрузки данных, либо rclone.

Для Windows использовал либо родной клиент, что не очень удобно, либо монтировал сетевой диск в Linux и там с ним работал. Не знал, что полнофункциональный rclone нормально работает в Windows, причём абсолютно так же, как в Linux. Настройка 1 в 1.

Установить можно как вручную, так и с помощью winget:
> winget install rclone
Через winget не сразу понял, куда он был установлен. Оказалось, что в директорию C:\Users\User\AppData\Local\Microsoft\WinGet\Packages\Rclone.Rclone_Microsoft.Winget.Source_8wekyb3d8bbwe\rclone-v1.63.1-windows-amd64.

Для настройки работы rclone с Яндекс диском нужно получить токен. Как это сделать, я описывал в заметке по работе с API. Единственное отличие — нужно предоставить побольше прав:
Доступ к папке приложения на Диске
Доступ к информации о Диске
Запись в любом месте на Диске
Доступ к Яндекс.Диску для приложений
А в качестве Redirect URI использовать ссылку: http://127.0.0.1:53682/

После этого запускаете в консоли команду:
> rclone config
Выбираете New remote ⇨ указываете название, например yandex ⇨ номер 48, соответствующий хранилищу Яндекс диск ⇨ client_id и client_secret оставляете пустыми ⇨ выполняете запрос токена ⇨ сохраняете конфиг.

У вас появится файл в C:\Users\User\AppData\Roaming\rclone\rclone.conf примерно следующего содержания:

[yandex]
type = yandex
client_id = 
client_secret = 
token = {"access_token":"y0_AgAAAABvmXfPAALEtgAAAAKpIA8y2bb-M0IiRFu068gJJKvzSOGoBBs","token_type":"OAuth","refresh_token":"1:p0NRuhts1VI1N7Sq:NWEoGv963fVVGSpE_k8Mftn6Pd8AKsFcte2WGqv77mKgWaoer36TX4irbubWTfCgk9_Gxh5NLBzkWA:b_dCjrHMIEMkKeH-oOFrFQ","expiry":"2024-07-30T20:45:05.4991551+03:00"}

Теперь можно через консоль загружать туда файлы:
> rclone copy C:\Users\User\Downloads\test.txt yandex:/
Положили в корень диска файл test.txt

Помимо загрузки файлов, rclone умеет монтировать внешние хранилища как локальные или сетевые диски. Для этого ему нужна программа winfsp. Поставить можно тоже через winget:
> winget install winfsp

Монтируем яндекс диск в режиме чтения:
> rclone mount yandex:/ X:
Или в режиме записи:
> rclone mount yandex:/ X: --vfs-cache-mode writes
Яндекс диск смонтирован в виде локального диска X. Подробнее о монтировании в Windows, о правах доступа и прочих нюансах можно прочитать в документации.

Если для вас всё это слишком замороченно и хочется попроще, то вот набор программ, которые реализуют то же самое. Это платные программы, с ограниченными бесплатными версиями. Они удобны и популярны, так что при желании, вы найдёте репаки платных версий, но аккуратнее с ними. Я лично давно уже опасаюсь использовать ломаный софт.

🔹Air Explorer — двухпанельный файловый менеджер, который позволяет работать с облачными сервисами как с локальными директориями. Поддерживает и Яндекс.Диск, и диск от Mail ru.

🔹Air Live Drive — программа от того же производителя, которая позволят монтировать облачные диски как локальные.

🔹RaiDrive — писал об этой программе ранее. Позволяет подключать различные облачные сервисы как локальные диски.

#windows #rclone #backup
👍84👎6
Недавно в обсуждениях всплыл вопрос использования Rclone c Яндекс.Диском. У последнего заявлена поддержка этого облака. Я много работал с Яндекс.Диском в разное время. У него очень низкая стоимость хранения. Туда можно очень дёшево положить одну из копий бэкапов, чем я и занимался.

Для работы с облачным диском в Linux в разное время я использовал разные инструменты, так как Яндекс периодически менял условия доступа и ставил палки в колёса для нежелательных методов.

1️⃣ Доступ по протоколу webdav. Он и сейчас заявлен, как доступный протокол, но работать по нему фактически невозможно. Скорость никакая, постоянные разрывы связи.

2️⃣ Консольный клиент для Linux. Большие объёмы данных через него удобно загружать, но есть один нюанс. Через консольный клиент нельзя просто загрузить файлы в облако, без синхронизации локального и удалённого каталога. То есть у вас локально должно быть достаточно свободного места для копии облачных файлов. Для небольших виртуалок, с которых надо просто забрать файл, это не подходит.

3️⃣ Использование API. Рабочий вариант для каких-то ситуаций, но надо заморочиться с настройкой доступа и выпуском токенов. Сейчас может упростили процедуру, но когда я занимался, немного утомился от этой кухни.

4️⃣ Использование Rclone. По ссылке пример использования в Windows 3 года назад. Тогда работало нормально. Можно было даже примонтировать облачный диск к системе с помощью Rclone.

Я решил проверить, как сейчас работает Rclone с Яндекс.Диском в Linux. Сразу скажу, что работает отлично. Настраивается очень просто и быстро. На загрузку утилизировал весь доступный у меня дома канал. Никаких задержек и отвалов.

Показываю, как с ним работать. Устанавливаем rclone:

# apt install rclone

Настраиваем конфигурацию для Яндекс.Диска:

# rclone config

Дальше будут нюансы. Я действовал по инструкции на сайте rclone. Для аутентификации в сервисе через OAuth понадобится браузер. В результате будет получен токен, который можно использовать где угодно. То есть машина с браузером понадобится один раз для получения токена.

Я использовал свой ноутбук с Windows, а Rclone для получения токена запустил в WSL. Для этого воспользовался приведённой выше инструкцией, а когда в консоли увидел ссылку вида http://127.0.0.1:53682/auth?state=rOjTxRP71Dexbyal-faud, просто скопировал её в браузере и там же залогинился в сервис. Если у вас нет возможности запустить браузер локально вместе с запуском Rclone, а на удалённой машине нет GUI, то можно сделать проброс порта с удалённой машины на локальную через SSH:

# ssh -L localhost:53682:localhost:53682 username@remote_server

Почитать, как это работает, можно в заметке.

На выходе получил конфигурацию в файле ~/.config/rclone/rclone.conf вида:

[yandex]
type = yandex
token = {"access_token":"y0_g8MWLxkkwkw_Cn9EpiGIH_A","token_type":"OAuth","refresh_token":"2:AAAbtrsyM:23rBwLS_kWbXMr6V1Mr7xA","expiry":"2027-02-24T18:49:25.82348698+03:00"}

Эту конфигурацию можно перенести на целевой сервер и там работать с Яндекс.Диском. Сама работа выглядит примерно так.

Создаём директорию backup:

# rclone mkdir yandex:backup

Копируем туда файл:

# rclone copy ics-13.0.0-2025.12.08-14.40.iso yandex:backup

Смотрим содержимое директории:

# rclone ls yandex:backup

Удаляем файл:

# rclone delete yandex:backup/ics-13.0.0-2025.12.08-14.40.iso

Очищаем корзину:

# rclone cleanup yandex:

Работает всё четко. Я проверял результаты команд через веб интерфейс. Можно использовать в своих костылях из скриптов. Дешевле хранилища для данных не найти.

Отмечу только один нюанс, если будете загружать за раз много больших файлов. После каждой загрузки файла происходит задержка, связанная с тем, что облако что-то делает с файлом. Может проверяет, может хэши считает, неизвестно. Происходит заметная задержка на десятки секунд после загрузки. Если дефолтных таймаутов rclone не будет хватать, увеличьте их через ключ --timeout.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX

#rclone #backup
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍165👎2