Это инструкция как быстро скопировать много данных их GoogleDrive в Яндекс диск или на локальный компьютер. Она написана для людей с минимальными техническими знаниями (что такое консоль). Всем остальным будет проще через графический интерфейс.
Для копирования нам понадобится rсlone (https://rclone.org/). Простой и легкий, но очень мощный инструмент. Из коробки умеет работать со всеми видами хранилищ данных и протоколов доступа.
Что будет ниже
Инструкция получилась длинная. Ниже содержание. При необходимости переходите в нужный раздел. В разделах есть дубли текста, это сделанно намерненно, чтобы можно было пропускать не интересные не теряя важную информацию.
- Инструкция по установке
- Как добавить свой Google Drive?
- Как добавить свой Яндекс Диск?
- Как запустить копирование из Google Drive напрямую на Яндекс Диск?
- Как запустить копирование из Google Drive на локальный диск?
- Как проверить, что все скопировалось корректно?
- Полезные ссылки
Инструкция по установке
Есть два основные варианта установки через менеджер пакетов на вашей ОС и через инструкцию на официальном сайте. Если вы знаете, что такое менеджер пакетов, то лучше через него. Если нет, добро пожаловать на сайт.
Linux (ubuntu) через apt-get
sudo apt-get install rclone
MacOS
brew install rclone
Прочие ОС или без использования менеджера пакетов
Качаем нужную версию и устанавливаем по инструкции с официального сайта https://rclone.org/downloads/
* Обратите внимание! Разные версии для Inte/AMD и ARM - M1
Как добавить свой Google Drive?
Процедура не очень тривиальная, поэтому много картинок по шагам.
Открываем консоль, набираем "rclone config"
❯ rclone config
No remotes found - make a new one
n) New remote
... (было много текста, убрал, далее по аналогии)
Выбираем "n" - новая конфигурация
n/s/q> n
Вводим имя конфигурации. Для удобства "gdrive-1"
name> gdrive-1
Выбираем тип хранилища. В нашем случае это Google Drive. Поэтому пишет "drive"
Storage> drive
Нас просят ввести "Option client_id" - пропускаем, просто нажимаем "Enter"
Option client_id.
...
Enter a string value. Press Enter for the default ("").
client_id>
Нас просят ввести "client_secret" - пропускаем, просто нажимаем "Enter"
Option client_secret.
...
Enter a string value. Press Enter for the default ("").
client_secret>
Нас просят выбрать вариант доступа. Рекомендую "Read-only" - это вариант 2
Option scope.
Scope that rclone should use when requesting access from drive.
...
2 / Read-only access to file metadata and file contents.
...
scope> 2
Нам предлагают указать "Option root_folder_id"- пропускаем, просто нажимаем "Enter"
Option root_folder_id.
...
Enter a string value. Press Enter for the default ("").
root_folder_id>
Нам предлагают указать "Option service_account_file"- пропускаем, просто нажимаем "Enter"
Option service_account_file.
...
Enter a string value. Press Enter for the default ("").
service_account_file>
Нам предлагают поменять дополнительные конфигурации, выбираем нет ("n")
Edit advanced config?
y) Yes
n) No (default)
y/n> n
Нам предлагают автоматическую конфигурацию "Use auto config?". Выбираем нет ("n"). Это важный момент! В противном случае будет открыт браузер по умолчанию. Это вариант подойдет только для GUI, выбранный нами более универсален. Подойдет для серверов. Поэтому выбираем его.
Use auto config?
...
y/n> n
...
https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=156.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly&state=28-5A
Enter a string value. Press Enter for the default ("").
Нам дали одноразовую ссылку для аутентификации. Ее нужно скопировать и открыть в любом браузере где вам удобно. Предпочтительно, там где вы уже авторизованы в Google Drive. Это сэкономит кучу времени!
После этого выбираем нужный аккаунт и выдаем права через кнопку "Allow"
Копируем код авторизации
Вставляем его в rclone
config_verification_code> 4/1AX4XfWhU7-I/*(.)(.)*/XxADaBYafK0
Нам предлагают сделать диск доступным для других пользователей. Выбираем - нет ("n")
Configure this as a Shared Drive (Team Drive)?
...
y/n> n
Нам предлагают сохранить настройки. Выбирает - да ("y")
[gdrive-1]
...
y) Yes this is OK (default)
...
y/e/d> y
Вуаля! Мы это сделали. Система подтверждает создание конфигурации
Name Type
==== ====
gdrive-1 drive
Нам предлагают выбрать другие команды. Выбираем выход ("q")
e/n/d/r/c/s/q> q
Как добавить свой Яндекс Диск?
Процедура не очень тривиальная, поэтому много картинок по шагам.
Открываем консоль, набираем "rclone config"
❯ rclone config
No remotes found - make a new one
n) New remote
... (было много текста, убрал, далее по аналогии)
Выбираем "n" - новая конфигурация
n/s/q> n
Вводим имя конфигурации. Для удобства "ydrive-1"
name> ydrive-1
Выбираем тип хранилища. В нашем случае это "Yandex Disk". Поэтому пишет "yandex"
Storage> yandex
Нас просят ввести "Option client_id" - пропускаем, просто нажимаем "Enter"
Option client_id.
...
Enter a string value. Press Enter for the default ("").
client_id>
Нас просят ввести "client_secret" - пропускаем, просто нажимаем "Enter"
Option client_secret.
...
Enter a string value. Press Enter for the default ("").
client_secret>
Нам предлагают поменять дополнительные конфигурации, выбираем нет ("n")
Edit advanced config?
y) Yes
n) No (default)
y/n> n
Нам предлагают автоматическую конфигурацию "Use auto config?". Выбираем нет ("n"). Это важный момент! В противном случае будет открыт браузер по умолчанию. Это вариант подойдет только для GUI, выбранный нами более универсален. Подойдет для серверов. Поэтому выбираем его.
Use auto config?
...
n) No
y/n> n
Option config_token.
For this to work, you will need rclone available on a machine that has
a web browser available.
For more help and alternate methods see: https://rclone.org/remote_setup/
Execute the following on the machine with the web browser (same rclone
version recommended):
rclone authorize "yandex"
Then paste the result.
Enter a string value. Press Enter for the default ("").
config_token>
Тут начинается магии! Вам нужно ввести команду "rclone authorize "yandex"" на компьютере где есть GUI. Это можно сделать как на текущем компьютере в новой консоли, так и на любом другом. Важно! На нем должен быть браузер. Оптимально, если там уже будет ваша авторизация в Яндекс.
❯ rclone authorize "yandex"
2022/03/12 11:50:33 NOTICE: If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=_xaPZ/*(.)(.)*/LdK-jd2XEw
2022/03/12 11:50:33 NOTICE: Log in and authorize rclone for access
2022/03/12 11:50:33 NOTICE: Waiting for code...
* Данный шаг добавлен для универсальности
В этот момент откроется браузер. Вам нужно выбрать ваш аккаунт на Yandex куда будут копироваться файлы. Далее подтвердить доступ. Кнопка "Login as ..."
Браузер сообщает, что операция прошла успешно. Закрываем окно браузера. Оно нам больше не потребуется.
Success!
All done. Please go back to rclone.
Возвращаемся в консоль где мы набирали "❯ rclone authorize "yandex"". В ней появится токен. Копируем его. От "{" до "}" включительно.
❯ rclone authorize "yandex"
...
Paste the following into your remote machine --->
{"access_token":"AQAYlQM_LCNxs","token_type":"bearer","refresh_token":"1:2Ge4KLBCs_O407iU:rpDvt_R-Q","expiry":"2023-03-12T11:56:09.660391+03:00"}
<---End paste
Возвращаемся в консоль где мы настраивали rclone. Вставляем полученный токен.
Option config_token.
...
config_token> {"access_token":"AQQM_LCNxs","token_type":"bearer","refresh_token":"1:2Ge4KD:560P7iU:rpat_al_aq4-Q","expiry":"2023-03-12T11:56:09.660391+03:00"}
Система просить подтвердить создание конфигурации. Отвечает ОК ("y")
y) Yes this is OK (default)
...
y/e/d> y
Вуаля! Мы это сделали. Система подтверждает создание конфигурации.
Name Type
==== ====
ydrive-1 yandex
Нам предлагают выбрать другие команды. Выбираем выход ("q")
e/n/d/r/c/s/q> q
Как запустить копирование из Google Drive напрямую на Яндекс Диск?
Для этого используется команда copy. В ней указывается откуда копировать и куда. Ниже пример копирования папки.
❯ rclone copy -v "gdrive-1:video" "ydrive-1:video"
(video - папка которую копируем, gdrive-1 и ydrive-1 названия созданных ранее конфигураций)
Если нужно скопировать весь диск, просто указываем диск. В этом случае рекомендуется копировать его не в корневую папку Яндекс Диск, а в отдельную директорию.
❯ rclone copy -v "gdrive-1:" "ydrive-1:gdrive-backup"
(gdrive-backup - папка куда копируем)
Если вы запускаете копирование на удаленном сервере настоятельно рекомендую запускать "отвязывая процесс от ssh сессии".
❯ nohup rclone copy -v "gdrive-1:video" "ydrive-1:video" > video.log &
(video.log - файл куда будет писаться история/лог)
Для просмотра истории можно воспользоваться командой tail. С флагом -f показывающим только последние строки лог файла.
❯ tail -f video.log
Если путь содержит пробелы рекомендую брать его в "" как в примерах выше.
❯ rclone copy -v "gdrive-1:" "ydrive-1:gdrive-backup"
Флаг "-v" добавляет расширенную информацию о процессе копирования. Рекомендую его добавить.
Для больших файлов (видео архивы) рекомендуется добавить флаг --drive-chunk-size 64M. Пример ниже.
❯ nohup rclone copy -v --drive-chunk-size 64M "gdrive-1:video" "ydrive-1:video" > video.log &
Добавлять "--transfers" для большинства случаев смысла нет. По умолчанию стоит 4. Вы скорее всего быстрее упретесь в ограничения Яндекс Диск. Но все индивидуально.
Как запустить копирование из Google Drive на локальный диск?
Для этого используется команда copy. В ней указывается откуда копировать и куда. Ниже пример копирования папки.
❯ rclone copy -v "gdrive-1:video" "/home/viiko/tmp/video"
(video - папка которую копируем, gdrive-1 названия созданных ранее конфигураций откуда будем копировать, /home/viiko/tmp/video полный путь к папке куда копировать данные)
Если нужно скопировать весь диск, просто указываем диск. В этом случае рекомендуется копировать его не в корневую папку Яндекс Диск, а в отдельную директорию.
❯ rclone copy -v "gdrive-1:" "/home/viiko/tmp/video"
Если вы запускаете копирование на удаленном сервере настоятельно рекомендую запускать "отвязывая процесс от ssh сессии".
❯ nohup rclone copy -v "gdrive-1:video" "/home/viiko/tmp/video" > video.log &
(video.log - файл куда будет писаться история/лог)
Для просмотра истории можно воспользоваться командой tail. С флагом -f показывающим только последние строки лог файла.
❯ tail -f video.log
Если путь содержит пробелы рекомендую брать его в "" как в примерах выше.
❯ rclone copy -v "gdrive-1:" "/home/viiko/tmp/video"
Флаг "-v" добавляет расширенную информацию о процессе копирования. Рекомендую его добавить.
Для больших файлов (видео архивы) рекомендуется добавить флаг --drive-chunk-size 64M. Пример ниже.
❯ nohup rclone copy -v --drive-chunk-size 64M "gdrive-1:video" "/home/viiko/tmp/video" > video.log &
Добавлять "--transfers" для большинства случаев смысла нет. По умолчанию стоит 4. Вы скорее всего быстрее упретесь в ограничения Яндекс Диск. Но все индивидуально.
Как проверить, что все скопировалось корректно?
Для этого используется команда check. В параметрах нужно указать где находится оригинал и куда он копировался.
rclone check -v --size-only "gdrive-1:video" "ydrive-1:video"
(video - папка которую копируем, gdrive-1 и ydrive-1 названия созданных ранее конфигураций)
При испольовании рекомендую использовать флаг --size-only. Проверка будет делаться только по размеру файлов.
После выполнения команды вы получите информаци о файлах которые отличаются и идиентичны. Пример корретного копирования ниже.
2022/03/12 09:47:06 NOTICE: Local file system at /home/viiko/tmp/video: 0 differences found
2022/03/12 09:47:06 NOTICE: Local file system at /home/viiko/tmp/video: 585 matching files