Rclone yandex disk windows

v1.26

Yandex Disk

Yandex Disk is a cloud storage solution created by Yandex.

Configuration

Here is an example of making a yandex configuration. First run

rclone config

This will guide you through an interactive setup process:

No remotes found, make a new one?
n) New remote
s) Set configuration password
n/s> n
name> remote
Type of storage to configure.
Choose a number from below, or type in your own value
[snip]
XX / Yandex Disk
   \ "yandex"
[snip]
Storage> yandex
Yandex Client Id - leave blank normally.
client_id>
Yandex Client Secret - leave blank normally.
client_secret>
Remote config
Use web browser to automatically authenticate rclone with remote?
 * Say Y if the machine running rclone has a web browser you can use
 * Say N if running rclone on a (remote) machine without web browser access
If not sure try Y. If Y failed, try N.
y) Yes
n) No
y/n> y
If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...
Got code
Configuration complete.
Options:
- type: yandex
- client_id:
- client_secret:
- token: {"access_token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","token_type":"OAuth","expiry":"2016-12-29T12:27:11.362788025Z"}
Keep this "remote" remote?
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y

See the remote setup docs for how to set it up on a
machine with no Internet browser available.

Note that rclone runs a webserver on your local machine to collect the
token as returned from Yandex Disk. This only runs from the moment it
opens your browser to the moment you get back the verification code.
This is on http://127.0.0.1:53682/ and this it may require you to
unblock it temporarily if you are running a host firewall.

Once configured you can then use rclone like this,

See top level directories

rclone lsd remote:

Make a new directory

rclone mkdir remote:directory

List the contents of a directory

rclone ls remote:directory

Sync /home/local/directory to the remote path, deleting any
excess files in the path.

rclone sync --interactive /home/local/directory remote:directory

Yandex paths may be as deep as required, e.g. remote:directory/subdirectory.

Modification times and hashes

Modified times are supported and are stored accurate to 1 ns in custom
metadata called rclone_modified in RFC3339 with nanoseconds format.

The MD5 hash algorithm is natively supported by Yandex Disk.

Emptying Trash

If you wish to empty your trash you can use the rclone cleanup remote:
command which will permanently delete all your trashed files. This command
does not take any path arguments.

Quota information

To view your current quota you can use the rclone about remote:
command which will display your usage limit (quota) and the current usage.

Restricted filename characters

The default restricted characters set
are replaced.

Invalid UTF-8 bytes will also be replaced,
as they can’t be used in JSON strings.

Standard options

Here are the Standard options specific to yandex (Yandex Disk).

—yandex-client-id

OAuth Client Id.

Leave blank normally.

Properties:

  • Config: client_id
  • Env Var: RCLONE_YANDEX_CLIENT_ID
  • Type: string
  • Required: false

—yandex-client-secret

OAuth Client Secret.

Leave blank normally.

Properties:

  • Config: client_secret
  • Env Var: RCLONE_YANDEX_CLIENT_SECRET
  • Type: string
  • Required: false

Advanced options

Here are the Advanced options specific to yandex (Yandex Disk).

—yandex-token

OAuth Access Token as a JSON blob.

Properties:

  • Config: token
  • Env Var: RCLONE_YANDEX_TOKEN
  • Type: string
  • Required: false

—yandex-auth-url

Auth server URL.

Leave blank to use the provider defaults.

Properties:

  • Config: auth_url
  • Env Var: RCLONE_YANDEX_AUTH_URL
  • Type: string
  • Required: false

—yandex-token-url

Token server url.

Leave blank to use the provider defaults.

Properties:

  • Config: token_url
  • Env Var: RCLONE_YANDEX_TOKEN_URL
  • Type: string
  • Required: false

—yandex-client-credentials

Use client credentials OAuth flow.

This will use the OAUTH2 client Credentials Flow as described in RFC 6749.

Properties:

  • Config: client_credentials
  • Env Var: RCLONE_YANDEX_CLIENT_CREDENTIALS
  • Type: bool
  • Default: false

—yandex-hard-delete

Delete files permanently rather than putting them into the trash.

Properties:

  • Config: hard_delete
  • Env Var: RCLONE_YANDEX_HARD_DELETE
  • Type: bool
  • Default: false

—yandex-encoding

The encoding for the backend.

See the encoding section in the overview for more info.

Properties:

  • Config: encoding
  • Env Var: RCLONE_YANDEX_ENCODING
  • Type: Encoding
  • Default: Slash,Del,Ctl,InvalidUtf8,Dot

—yandex-spoof-ua

Set the user agent to match an official version of the yandex disk client. May help with upload performance.

Properties:

  • Config: spoof_ua
  • Env Var: RCLONE_YANDEX_SPOOF_UA
  • Type: bool
  • Default: true

—yandex-description

Description of the remote.

Properties:

  • Config: description
  • Env Var: RCLONE_YANDEX_DESCRIPTION
  • Type: string
  • Required: false

Limitations

When uploading very large files (bigger than about 5 GiB) you will need
to increase the --timeout parameter. This is because Yandex pauses
(perhaps to calculate the MD5SUM for the entire file) before returning
confirmation that the file has been uploaded. The default handling of
timeouts in rclone is to assume a 5 minute pause is an error and close
the connection — you’ll see net/http: timeout awaiting response headers errors in the logs if this is happening. Setting the timeout
to twice the max size of file in GiB should be enough, so if you want
to upload a 30 GiB file set a timeout of 2 * 30 = 60m, that is
--timeout 60m.

Having a Yandex Mail account is mandatory to use the Yandex.Disk subscription.
Token generation will work without a mail account, but Rclone won’t be able to complete any actions.

[403 - DiskUnsupportedUserAccountTypeError] User account type is not supported.

Обновлено:
Опубликовано:

Используемые термины: Rclone.

В данной инструкции рассмотрим разные примеры настройки утилиты rclone для хранения архивов в облаке. По мере возможности, данные примеры будут пополняться.

Установка
SSH
FTP
Яндекс диск
Примеры команд в Rclone
Решение проблем

Установка rclone

В нашем примере мы будем работать с Linux. Для установки достаточно ввести команду:

curl https://rclone.org/install.sh | bash

Если в нашей системе нет curl, мы получим ошибку. Установка курл выполняется из репозитория.

а) для deb:

apt install curl

б) для rpm:

yum install curl

Мы должны увидеть что-то на подобие:


rclone v1.59.2 has successfully installed.
Now run «rclone config» for setup. Check https://rclone.org/docs/ for more details.

* в нашем примере установлен rclone версии 1.59.2.

Мы готовы к работе с rclone.

SSH

SSH является наиболее востребованным для передачи данных. 

Для настройки вводим команду:

rclone config

Создаем новую конфигурацию:

n/s/q> n

Даем понятное название для нашего соединения:

name> SSH

Среди списка возможных шаблонов выбираем SSH/SFTP:

39 / SSH/SFTP
   \ (sftp)

Storage> 39

Указываем адрес сервера SSH:

host> backup2.ssh.com

Имя учетной записи для подключения по SSH:

user> user22

Порт (как правило, это 22):

port> 22

На запрос использования пароля, отвечаем y (ввести свой пароль):

Option pass.
SSH password, leave blank to use ssh-agent.
Choose an alternative below. Press Enter for the default (n).
y) Yes, type in my own password
g) Generate random password
n) No, leave this optional password blank (default)
y/g/n> y

И дважды вводим пароль для подключения к SSH-серверу:

Enter the password:
password:
Confirm the password:
password:

На следующие вопросы можно не отвечать, просто нажимая Enter:

key_pem> 

key_file> 

y/g/n> 

pubkey_file> 

key_use_agent> 

use_insecure_cipher> 

disable_hashcheck> 

Edit advanced config?
y) Yes
n) No (default)
y/n> 

В конце мы увидим сводную информацию о добавляемой конфигурации. Если все верно, нажимаем Enter или вводим y:

Configuration complete.
Options:
— type: sftp
— host: backup2.ssh.com
— user: user22
— pass: *** ENCRYPTED ***
Keep this «SSH» 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

Проверить подключение и посмотреть содержимое SSH-каталога можно командой:

rclone ls SSH:

* где SSH — имя нашего соединения.

Готово. Действия, которые можно выполнить описаны ниже.

FTP

Выполним синхронизацию данных с удаленным каталогом на сервере FTP.

Переходим в режим конфигурирования rclone:

rclone config

Создаем новую конфигурацию:

n/s/q> n

Даем понятное название для нашего соединения:

name> BackupFTP

Среди списка возможных шаблонов выбираем FTP Connection:

16 / FTP
   \ (ftp)

Storage> 16

* на момент обновления инструкции данный шаблон находится под номером 16.

Указываем адрес сервера FTP:

host> backup2.ftp.com

Имя учетной записи для подключения к серверу FTP:

user> user21

Порт (как правило, это 21):

port> 21

На запрос использования пароля, отвечаем y (ввести свой пароль):

FTP password
y) Yes type in my own password
g) Generate random password
y/g> y

И дважды вводим пароль для подключения к FTP-серверу:

Enter the password:
password:
Confirm the password:
password:

Если удаленный сервер для подключения требует TLS, в соответствующей опции задаем значение true:

tls> true

explicit_tls> true

* в противном случае оставляем поле незаполненным или ставим false.

На остальные опции отвечаем по умолчанию, нажимая Enter.

Подтверждаем, что ранее введенные данные верны:

y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y

Готово. Мы можем посмотреть содержимое каталога на сервере FTP:

rclone ls «BackupFTP»:

* обратите внимание, что так как название в данном примере задано с пробелами, мы пишем его в кавычках.

Готово. Действия, которые можно выполнить описаны ниже.

Пример дополнительный параметров:

При конфигурировании FTP система запрашивает, хотим ли мы сконфигурировать дополнительные параметры. Если нажать да:

Edit advanced config? (y/n)
y) Yes
n) No (default)
y/n> y

… та нам будут заданы дополнительные вопросы. Среди который, наиболее интересен про проверку валидации сертификата:

no_check_certificate> true

Очень часто, при настройке TLS на FTP-сервере используют самоподписанный сертификат. Данная опция позволит rclone не завершать работу с ошибкой при проверке валидности сертификата.

Яндекс диск

Для работы с яндекс диском необходима авторизация через браузер (OAuth). Для того, чтобы запустить утилиту на сервере без графики, мы должны сначала установить rclone на компьютер с GUI (это может быть Windows или Linux Desktop).

Скачать программу можно на официальном сайте.

И так, на компьютере с браузером запускаем конфигурацию утилиты:

rclone config

* если запускаем в Windows, то сначала переходим в каталог, куда скопировали утилиту.

Создаем новую конфигурацию:

n/s/q> n

Даем понятное название для нашего соединения:

name> YandexDisk

Среди списка возможных шаблонов выбираем Yandex Disk:

39 / Yandex Disk
   \ «yandex»

Storage> 39

* на момент обновления инструкции данный шаблон находится под номером 39.

Идентификатор клиента и пароль оставляем пустыми:

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

Откроется окно браузера — вводим наши логин и пароль для доступа к Яндекс диску. В следующем окне кликаем по Log in as …:

Мы должны увидеть сообщение об успешном прохождении аутентификации OAuth:

Success!

Закрываем браузер. Выходим из конфигурирования rclone:

e/n/d/r/c/s/q> q

Смотрим содержимое конфигурационного файла. Наши действия немного будут различаться в зависимости от системы, в которой мы работаем.

а) в системах на базе Linux:

cat ~/.config/rclone/rclone.conf

б) для систем Windows:

type %USERPROFILE%\.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″}

* конфигураций может быть несколько — нас интересует yandex с тем именем, которое мы задавали в настройке.

Копируем содержимое и переходим на целевой сервер. 

Открываем конфигурационный файл для rclone:

vi ~/.config/rclone/rclone.conf

* если в нашей системе уже есть конфигурационный файл и его путь отличается от нашего, то можено ввести команду:

rclone —help | grep -e ‘—config’

… которая покажет путь до него.

Ввносим содержимое, которое скопировали, например:

[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 lsd YandexDisk:

Полезные команды для работы с Rclone 

Просмотр списка контейнеров в хранилище:

rclone lsd [remote]:

Создание нового контейнера:

rclone mkdir [remote]:[имя контейнера]

* где [имя контейнера] — путь до конечной папки.

Просмотр списка файлов в контейнере:

rclone ls [remote]:[имя контейнера]

Копирование файлов с локальной машины в хранилище:

rclone copy /home/local/directory [remote]:[имя контейнера]

Синхронизация файлов на локальной машине и в хранилище:

rclone sync /home/local/directory [remote]:[имя контейнера]

Синхронизация файлов в хранилище с файлами на локальной машине:

rclone sync [remote]:[имя контейнера] /home/local/directory

При выполнении операций копирования и синхронизации rclone проверяет все файлы по дате и времени изменения или md5-сумме. Из директории-источника в директорию назначения передаются те файлы, которые были изменены.

Возможные проблемы

Пока, я столкнулся с единственной проблемой.

Rclone копирует по-кругу один файл

В моем случае, программа копировала все данные на удаленное хранилище и после этого, вместо того, чтобы завершить работу, начинала копировать файл(ы) по новой.

Причина: как выяснилось, проблема в версии приложения.

Решение: в моем случае, помогла установка более ранней версии приложения. Список можно увидеть на официальном сайте.

Как подключить облако через Rclone    оглавление    Как выполнить offline-активацию обновлятора-1с (v2)?

2024-08-30T17:12:30+00:00

Оглавление

  • Введение
  • Создаем приложение
    • Шаг 1
    • Шаг 2
    • Шаг 3
    • Шаг 4
    • Приложение создано
    • Редактируем созданное приложение

Введение

Подключение Яндекс.Диск в обновлятор через утилиту Rclone делается вот так. Единственная проблема, по умолчанию используются стандартные client_id и client_secret для доступа к API Яндекса. Это может приводить к замедлению в работе.

Поэтому в этой статье я опишу регистрацию собственного приложения в Яндексе и получение своей собственной пары client_id/client_secret. Это несложно.

Создаем приложение

Для этого авторизуйтесь в учётной записи Яндекса, диск которой собираетесь использовать.

Далее перейдите на страницу https://oauth.yandex.ru/client/my и нажмите ссылку «Создать приложение»:

Шаг 1

  • В качестве названия сервиса укажите любое, например,
    Обновлятор
  • Далее выберите платформу Веб-сервисы

Должно получиться вот так:

После этого нажмите в самом низу жёлтую кнопку «Сохранить и продолжить».

Шаг 2

На втором шаге оставляем только «Доступ к адресу электронной почты»:

И снова нажимаем кнопку «Сохранить и продолжить».

Шаг 3

На третьем шаге указываем Redirect URL http://127.0.0.1:53682

И снова нажимаем кнопку «Сохранить и продолжить».

Шаг 4

На четвёртом шаге указываем почту учётной записи для которой мы создаём приложение:

Нажимаем кнопку «Сохранить и продолжить».

Приложение создано

На следующем экране нажимаем кнопку «Всё верно, создать приложение»:

Редактируем созданное приложение

После этого возвращаемся в настройки нашего приложения и нажимаем кнопку «Редактировать»:

Либо (если не находим кнопку «Редактировать») ищем кнопку с карандашом и нажимаем на неё:

На открывшейся странице из адреса вида https://oauth.yandex.ru/client/edit/your_client_id/id удаляем последнюю часть адреса (/id) и переходим на эту же страницу, но с дополнительными возможностями.

В разделе «Доступ к данным» появляется строка, в которую мы можем написать свой идентификатор для доступа к Яндекс.Диску. Добавляем следующие доступы:

  • cloud_api:disk.app_folder
  • cloud_api:disk.read
  • cloud_api:disk.info
  • cloud_api:disk.write
  • login:email

Должно получиться вот так:

Нажимаем внизу страницы кнопку «Сохранить»:

Вот эти значения client_id и client_secret мы теперь можем использовать для регистрации облака в утилите rclone:

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Друзья, у меня также есть онлайн-школа для начинающих программистов 1С: вот она.

При моей поддержке вы:

  • Освоите основы программирования на 1С (научитесь писать код).
  • Получите представление о том, как конфигурации 1С устроены изнутри.
  • Изучите язык запросов 1С, и это позволит вам создавать свои отчёты.
  • После окончания школы я дам рекомендации и напутствие по дальнейшему обучению.

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:

Как подключить облако через Rclone    оглавление    Как выполнить offline-активацию обновлятора-1с (v2)?

Обратите внимание. В мае 2025 года существенное снизились цены на вечные виртуальные серверы VPS/VDS в России и Нидерландах. Для читателей блога дополнительная скидка 10%. Подробнее.

Резервное копирование для экономных или бэкапимся в облака бесплатно

Публикуя статьи о резервном копировании я достаточно подробно описал как «готовить бэкапы» на серверах, но обошел стороной персональные компьютеры (далее ПК). А ведь данные на них не менее важны и так же нуждаются в резервировании. Тем более, что серверы есть не у всех, а ноутбук или компьютер у большинства — либо дома, либо на работе.

В этой статье я расскажу как создать в «облаке» резервную копию важных данных с диска вашего ПК используя только бесплатные инструменты.

Речь пойдет о копировании ваших документов, фотографий, программ и прочего в облачные хранилища MAIL.RU, Yandex.RU, DropBox и им подобные.

Все решения я буду демонстрировать на примере операционной системы Windows, так как она самая распространенная как на домашних ПК, так и на офисных рабочих станциях.

Утилита Rclone

Речь в статье пойдет о бесплатном инструменте по копированию данных в облачные диски — Rclone.

Основная функция rclone — это синхронизация данных между локальным компьютером и облачным хранилищем.

Rclone поддерживает более 40 облачных хранилищ, а также стандартные протоколы передачи webdav, ftp и так далее.

У Rclone мощные облачные эквиваленты unix команд rsync, cp, mv, mount, ls, ncdu, tree, rm и cat.

Так же Rclone позволяет примонтировать любую локальную, облачную или виртуальную файловую систему как диск в Windows, macOS, Linux и FreeBSD, а также предоставляет к ним доступ через SFTP, HTTP, WebDAV, FTP и DLNA.

Утилита бесплатная и распространяется по лицензии MIT.

Можно сказать, что консольная утилита (программа) Rclone является аналогом Rsync, но только для облачных хранилищ.

Где скачать бесплатную программу Rclone

Rclone поставляется в виде одного исполняемого файла. Скачать его для своей операционной системы можно с официального сайта — https://rclone.org/downloads/.

Программа Rclone работает на Windows, macOS, Linux (пакеты .deb и .rpm), FreeBSD, NetBSD, OpenBSD, Plan9, Solaris. Поддерживаются архитектуры Intel, AMD, ARM, MIPS.

Настройка Rclone для подключения к облаку Яндекс.Диск

Для настройки утилиты Rclone нужно в консоле выполнить команду: rclone config и далее ответить на несколько вопросов в зависимости от вашего облака или способа подключения.

Вот, к примеру, инструкция настройки доступа к Яндекс.Диск — https://rclone.org/yandex/.

Настройка Rclone в графическом режиме

«Консольные» настройки подробно описаны в сети и нет смысла их расписывать вновь. Гораздо интереснее «потыкать мышкой», тем более, что свежие версии Rclone экспериментально поддерживают WebGUI режим. То есть режим управления утилитой через браузер.

Для его активации выполните следующую команду в консоли из папки (директории) с установленной утилитой Rclone:

rclone rcd --rc-web-gui

И в окне браузера вы увидите примерно следующую картину:

На рисунке выше уже созданы конфигурации для доступа к облаку Mail.RU и к домашнему хранилищу по WebDav.

Кстати прямо из браузера можно получить доступ к файлам настроенного облачного хранилища. Таким образом Rclone является многофункциональной альтернативой веб-интерфейсам облачных хранилищ.

Для меня главный плюс графического режима — это начальные настройки аккаунтов для доступа к облачным хранилищам.

Где хранится файл настроек Rclone в Windows

В операционной системе Windows файл конфигурации rclone.conf создается индивидуально для каждого пользователя и сохраняется не в папке с исполняемым файлом, а по следующему пути: %APPDATA%/rclone/rclone.conf.

Чтобы увидеть полный путь к файлу rclone.conf выполните в консоли (не PowerShell) следующую команду:

cd %APPDATA%/rclone/

Основные команды Rclone

После того как вы настроили доступ к облачным хранилищам вы с помощью утилиты Rclone можете свободно оперировать с ними как с обычными папками на вашем компьютере. То есть копировать, перемещать, удалять файлы, создавать папки (директории) и синхронизировать их содержимое.

Синтаксис использования утилиты Rclone выглядит так:

rclone КОМАНДА ИСТОЧНИК ПОЛУЧАТЕЛЬ ОПЦИИ

где КОМАНДА — это одна из команд copy, sync, config и т.д.
ИСТОЧНИК и ПОЛУЧАТЕЛЬ — это локальная или сетевая папка с данными, либо название облачного хранилища. Название облачного хранилища должно заканчиваться двоеточием после которого можно указать имя папки в этом хранилище.
ОПЦИИ — это дополнительные параметры для команд.

Пример, как синхронизировать данные из локальной папки компьютера с операционной системой Windows на сетевой диск:

rclone.exe sync d:\backups \\192.168.254.224\backups\ --no-console --log-file rclone_log.txt

Здесь по команде sync синхронизируются данные между локальной и сетевой папкам. Опция —no-console запускает программу без запуска оболочки командной строки, а —log-file rclone_log.txt указывает куда писать результаты работы программы.

Синхронизация данных между локальной папкой и сетевым диском

Для синхронизации с облачным диском команда будет не на много отличаться:

rclone.exe sync d:\backups mail-ru:backups --no-console --log-file rclone_log.txt

Здесь mail-ru имя конфигурации для доступа к облаку Mail.RU. Заканчиваться должно на двоеточие, после которого можно указать папку для сохранения данных.

Чем отличаются команды SYNC и COPY

Эти команды очень похожи. COPY производит копирование с источника на получатель. SYNC копирует только новые или измененные файлы. Если планируете делать одну копию ваших данных, то используйте SYNC, операция копирования будет проходить быстрее.

Как восстановить данные из облачного хранилища

Если поменять местами источник и получатель, то есть в начале указать облачное хранилище, а затем локальный диск, то данные восстановятся из облака на локальном компьютере.

Можно ли синхронизировать два облака

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

Как обойти ограничение 2 ГБ на бесплатном тарифе диска от Маил РУ

К сожалению бесплатные тариф Маил Ру Диска имеет ограничение на размер закачиваемых на диск файлов, не более 2 ГБ. Обойти это ограничение нельзя, разве что поделить большие файлы на части. Но к большому сожалению Rclone не умеет это делать «на лету».

Как настроить автоматическое резервное копирование по расписанию

С помощью утилиты Rclone резервные копии можно делать автоматически по расписанию в удобное для вас время. Для этого нужно создать задание в планировщике задач Windows.

Выводы по утилите Rclone

Бесплатная утилита Rclone является мощным инструментом по копированию данных в облачные хранилища. Несложными действиями ее можно настроить для автоматического резервного копирования данных с вашего компьютера в облачные хранилища. У нее нет графического интерфейса, что может вызвать некоторые затруднения при использовании.

Если вы не понимаете важность резервного копирования, значит еще не теряли данные. Не расстраивайтесь, всё впереди! Даже самые надежные ЦОДы выгорают до тла когда в них ударяет молния.

В этой статье я покажу как настроить автоматическое сохранение резервной копии сайта в облако Яндекс.Диска. На момент написания статьи, Яндекс за регистрацию бесплатно предоставлял 10ГБ доступного места, если этого мало, то в любой момент можно докупить еще.

Предполагается что сайт расположен на виртуальном сервере (VPS) под управлением операционной системы Linux. У Яндекс.Диска есть официальный консольный клиент для Linux, но он, как мне показалось, работает нестабильно. Поэтому мы будем использовать более универсальное решение под названием rclone.

Rclone — это программа для синхронизации файлов и каталогов, которая работает с большим количеством облачных хранилищ, в том числе и с Яндекс.Диском.

После прочтения вы настроите автоматический бэкап своего сайта, из которого в случае необходимости, сможете восстановиться.

Установка

Сначала зарегистрируйте аккаунт в Яндексе, если у вас его еще нет. В целях безопасности, рекомендую под каждый проект заводить отдельный аккаунт.

Чтобы получить access_token Яндекс.Диска нужен компьютер с установленным браузером. Для этого мы установим rclone на своем локальном компьютере. Перейдите на страницу загрузки, скачайте rclone под свою операционную систему и распакуйте скачанный архив с исполняемым файлом, позже мы к нему вернемся.

Соединяемся с удаленным сервером по SSH, который будем бэкапить. В моем случае это операционная система Ubuntu 18.04 с установленными PHP + MySQL + Nginx. Далее все команды выполняем на нем.

Установка и настройка консольного клиента rclone на удаленном сервере

Устанавливаем rclone на удаленном сервере:

curl https://rclone.org/install.sh | sudo bash

Запускаем мастер настройки конфигурации rclone config:

rclone config

No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n

name> yadisk # Придумываем имя

Type of storage to configure.
Choose a number from below, or type in your own value
 1 / Alias for a existing remote
   \ "alias"
 2 / Amazon Drive
   \ "amazon cloud drive"

 ...

23 / Yandex Disk
   \ "yandex"
24 / http Connection
   \ "http"
Storage> 23 # Выбираем Yandex Disk

Yandex Client Id - leave blank normally.
client_id> # Оставляем пустым

Yandex Client Secret - leave blank normally.
client_secret> # Оставляем пустым

Remote config
Use auto config?
 * Say Y if not sure
 * Say N if you are working on a remote or headless machine
y) Yes
n) No
y/n> n

For this to work, you will need rclone available on a machine that has a web browser available.
Execute the following on your machine:
	rclone authorize "yandex"
Then paste the result below:
result> # Здесь необходимо вставить данные с компьютера

Не разрывайте SSH-соединение с сервером. Откройте новое окно оболочки командной строки на локальном компьютере. Перейдите в папку с распакованным файлом rclon и выполните команду:

rclone authorize "yandex"

If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...

Откройте в браузере http://127.0.0.1:53682/auth если этого не произошло автоматически.

На специальной странице Яндекса разрешите доступ к Яндекс.Диску приложению rclone, нажав на кнопку Allow.

После этого снова возвращаемся в оболочку командной строки и копируем Ctrl+Shift+C появившийся json объект:

...
Got code
Paste the following into your remote machine --->
{"access_token":"AQAAAA...hlXXPE","token_type":"bearer","refresh_token":"1:jIvyMr...cn589PQyfw","expiry":"2019-08-07T12:37:22.149859353+06:00"}

Вставляем Ctrl+Shift+V скопированный json объект в консоли удаленного сервера:

...
Then paste the result below:
result> 
{"access_token":"AQAAAA...hlXXPE","token_type":"bearer","refresh_token":"1:jIvyMr...cn589PQyfw","expiry":"2019-08-07T12:37:22.149859353+06:00"}

--------------------
[yadisk]
type = yandex
client_id = 
client_secret = 
token = {"access_token":"AQAAAA...hlXXPE","token_type":"bearer","refresh_token":"1:jIvyMr...cn589PQyfw","expiry":"2019-08-07T12:37:22.149859353+06:00"}
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y

Current remotes:

Name                 Type
====                 ====
yadisk               yandex

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q

На этом настройка завершена. Для проверки посмотрим содержимое Яндекс.Диска. Данная команда выведет список всех файлов и папок:

rclone ls yadisk:

Настройка синхронизации данных с Яндекс.Диском

Создайте файл /home/manager/backup.sh в домашнем каталоге пользователя (в моем случае это manager) со следующим содержимым:

#!/usr/bin/env bash

ROOT_PATH=$(cd $(dirname $0) && pwd)

LOG_FILE=$ROOT_PATH/backup.log

DB_DATABASE=appdb
DB_USERNAME=dbuser
DB_PASSWORD=secret

SRC=/var/www/app
DEST=yadisk:/backup

if pidof -o %PPID -x `basename "$0"` > /dev/null; then
    echo "$(date "+%d.%m.%Y %T") EXIT: The script is already running." | tee -a "$LOG_FILE"
    exit 1
fi

echo "$(date "+%d.%m.%Y %T") INFO: Start" | tee -a "$LOG_FILE"

mysqldump -u$DB_USERNAME -p$DB_PASSWORD $DB_DATABASE > $SRC/dump.sql

rclone sync $SRC $DEST \
    --delete-excluded \
    --exclude "vendor/**" \
    --exclude "logs/**" \
    --log-file "$LOG_FILE"

echo "$(date "+%d.%m.%Y %T") INFO: End" | tee -a "$LOG_FILE"

echo "" | tee -a "$LOG_FILE"

Измените значения переменных:

  • DB_DATABASE — название базы данных
  • DB_USERNAME — пользователь базы данных
  • DB_PASSWORD — пароль пользователя базы данных
  • SRC — корневой каталог с сайтом
  • DEST — каталог в облачном хранилище. Корневой путь yadisk:/

Во время запуска скрипта команда mysqldump создаст дамп базы данных dump.sql в корневом каталоге сайта SRC. После этого команда rclone sync изменит каталог в облачном хранилище DEST таким образом, чтобы он был идентичным с корневым каталогом сайта SRC. Потом скрипт обо всем этом напишет в лог backup.log, который положит рядом с собой. Если данный скрипт вас чем-то не устраивает, измените его под себя.

Разрешаем запускать скрипт на выполнение:

chmod +x /home/manager/backup.sh

Добавляем задание в планировщик cron:

crontab -e

Вставляем следующую запись, которая будет каждый день в 00:00 выполнять скрипт backup.sh:

0 0 * * * /home/manager/backup.sh >/dev/null 2>&1

Что дальше?

Для надежной системы резервного копирования одной синхронизации файлов не достаточно, ошибки могут происходить на каждом шагу. Чтобы их избежать, напоследок несколько важных рекомендаций:

  • Периодически просматривайте лог резервного копирования. Во время синхронизации может произойти сбой.
  • Скидывайте бэкап с Яндекс.Диска на другой носитель, например: HDD или облако Google Drive
  • Обязательно проверяйте бэкап, нет никакого толка если он поврежден. Для этого можно использовать Vagrant.

P.S. Желаю вам надежных серверов и никогда не терять данные, ну а если подобное случится, то всегда иметь бэкап из которого можно восстановиться!

Напишите в комментариях:

  • На сколько большой ваш проект и какой тип хостинга используете?
  • Делаете ли вы резервные копии и какие для этого программы используете?
  • Как восстанавливаетесь после сбоев?

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Apk симулятор для windows
  • Как удалить фантомный язык в windows 10
  • Windows xp main menu
  • Windows find exe in path
  • Сброс пароля windows 10 через командную строку с флешки