Как сделать резервную копию файлов телефона в Linux?

Любой хоть раз задумывался как быстро сделать копию телефона или отдельной папки, или файла. Или наоборот залить файлы на телефон.  Сейчас мы вам расскажем как легко и быстро передавать файлы любого вида с вашего устройства на компьютер с Linux и обратно.

Один из главных недостатков мобильных устройств заключается в том, насколько сложно может быть передача данных с вашего устройства на компьютер. Мобильные устройства имеют долгую историю этого. Ранние мобильные устройства, такие как устройства Pilot и Handspring PDA, требовали специальное программное обеспечение для синхронизации. Старым iPod требовался интерфейс для конкретной платформы. Современные мобильные устройства по умолчанию отправляют ваши данные в онлайн-аккаунт, поэтому вы можете загрузить их на свой компьютер.

Хорошие новости — если вы работаете в Linux, вы, вероятно, можете подключиться к мобильному устройству с помощью gphoto2. Изначально разработанный как способ связи с цифровыми камерами, когда цифровая камера была просто камерой, gphoto2 теперь может общаться со многими различными видами мобильных устройств.

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

Установить gPhoto2

Скорее всего, в вашей системе Linux уже установлена ​​libgphoto2, потому что это ключевая библиотека для взаимодействия с мобильными устройствами.

Поэтому вам необходимо установить всего лишь программу gPhoto2.

На Fedora или RHEL:

sudo dnf install gphoto2

На Debian или Ubuntu:

sudo apt install gphoto2

Проверка на совместимость с вашим устройством

Чтобы убедиться, что ваше мобильное устройство поддерживается, используйте:--list-cameras

Чтобы увидеть весь список поддерживаемых устройств, введите команду:

gphoto2 --list-cameras | less

Что бы сузить круг поиска и выбрать сразу именно ваше, вы можете использовать дополнительно команду grep. Например, если у вас Samsung Galaxy, тогда используйте grep с выключенной чувствительностью к регистру с помощью переключателя:-i

gphoto2 --list-cameras | grep -i galaxy

результат:
«Samsung Galaxy models (MTP)»
«Samsung Galaxy models (MTP+ADB)»
«Samsung Galaxy models Kies mode»

Это подтверждает, что устройства Samsung Galaxy поддерживаются через MTP и MTP с ADB.

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

Найди свое мобильное устройство

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

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

Чтобы убедиться, что ваш компьютер обнаруживает подключенное устройство, используйте параметр: --auto-detect

gphoto2 --auto-detect

Например, мой Xiaomi Redmi 8 Pro определился вот так:

Модель Порт
----------------------------------------------------------
Xiaomi Mi-2s (id2) (MTP) usb:001,005

Если ваше устройство не обнаружено, сначала проверьте кабели, а затем убедитесь, что ваше устройство настроено для взаимодействия через MTP или ADB, или какой-либо протокол, поддерживаемый gPhoto2 для вашего устройства, как показано в выходных данных --list-cameras.

Опросите ваше устройство на поддерживаемые функции

В современных устройствах обычно имеется множество потенциальных функций, но поддерживаются не все. Вы можете это узнать наверняка с опцией: --abilities.

gphoto2 --abilities

В режиме «Передача файлов» на телефоне, я получил вот такой ответ:
Функции фотоаппарата: Xiaomi Mi-2s (id2) (MTP)
Поддержка послед. порта: нет
Поддержка USB: да
Режимы съёмки: Драйвер не поддерживает режим съёмки
Поддержка настройки: нет
Удаление выбранных файлов с фотоаппарата: да
Удаление всех файлов с фотоаппарата: нет
Поддержка миниатюр: нет
Поддержка загрузки файлов: да

А вот в режиме «Передача файлов PTP» уже интересней результат, ответов «да» уже больше. Правда и определился он непонятно:

Функции фотоаппарата: USB PTP Class Camera
Поддержка послед. порта: нет
Поддержка USB : да
Режимы съёмки: Фото, Предв. просмотр
Поддержка настройки: да
Удаление выбранных файлов с фотоаппарата: да
Удаление всех файлов с фотоаппарата: нет
Поддержка миниатюр: да
Поддержка загрузки файлов: да

Если у вас подключено только одно устройство, тогда нет необходимости указывать, какое именно устройство вы запрашиваете. Однако если вы подключили более одного устройства, с которым gPhoto2 может взаимодействовать, вы можете указать устройство по порту, модели камеры или usbid.

Убрать конфликты при взаимодействии gphoto2 с устройством

У вас может возникнуть конфликт существующих приложений при доступе к устройству и вы можете получить следующее сообщение:

*** Ошибка ***
Ошибка в библиотеке ввода-вивода (‘Could not claim the USB device’): Could not claim interface 0 (Устройство или ресурс занято). Make sure no other program (gvfs-gphoto2-volume-monitor) or kernel module (such as sdc2xx, stv680, spca50x) is using the device and you have read/write access to the device.
*** Ошибка (-53: «Could not claim the USB device») ***

Для получения отладочных сообщений воспользуйтесь параметром —debug.
Отладочные сообщения могут помочь найти решение вашей проблемы.
Если вы хотите какие-либо сообщения gphoto с список рассылки авторов
программы , то запускайте
gphoto2 со следующими параметрами:

env LANG=C gphoto2 —debug —debug-logfile=my-logfile.txt —list-folders

Проверьте, что аргументы надёжно экранированы.

Это устраняется путем завершения пары процессов, которые уже работают с вашим устройством. На примере моего случая:

$ ps aux | grep gphoto
we 18618 0.0 0.0 309520 15800 ? Ssl лип03 0:00 /usr/lib/gvfs/gvfs-gphoto2-volume-monitor
$ kill -9 18618
$ ps aux | grep gvf | grep mtp
we 18622 0.0 0.0 282812 6908 ? Ssl лип03 0:00 /usr/lib/gvfs/gvfs-mtp-volume-monitor
we 27675 0.2 0.0 532868 10300 ? Sl 10:40 0:00 /usr/lib/gvfs/gvfsd-mtp --spawner :1.5 /org/gtk/gvfs/exec_spaw/17
$ kill -9 18622
$ kill -9 27675

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

Взаимодействие с вашим устройством

Если ваше устройство поддерживает захват, то вы можете захватывать медиа через камеру с вашего компьютера. Например, чтобы сделать снимок:

gphoto2 --capture-image

Чтобы сделать снимок и сразу же перенести его на компьютер, на котором вы находитесь:

gphoto2 --capture-image-and-download

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

gphoto2 --camera "Samsung Galaxy models (MTP)" --capture-image-and-download

Файлы и папки на вашем устройстве

Чтобы разумно взаимодействовать с файлами на вашем устройстве, вам необходимо понимать структуру файловой системы, доступной для gPhoto2.

Вы можете посмотреть доступные папки с опцией:--get-folders

$ gphoto2 --list-folders
There are 2 folders in folder '/'. 
- store_00010001
- store_00020002
There are 0 folders in folder '/store_00010001'.
There are 0 folders in folder '/store_00020002'.

Каждая из этих папок представляет место хранения на устройстве.
В данном примере:
store_00010001 — это внутреннее хранилище;
store_00020002 — SD-карта.

Ваше устройство может иметь другую структуру.

Получение файлов с вашего устройства

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

Вы можете получить конкретный файл, если вы знаете полный путь:

gphoto2 --get-file IMG_0001.jpg --folder /store_00010001/myphotos

Вы можете получить все файлы одновременно:

gphoto2 --get-all-files --folder /store_00010001/myfiles

Вы можете получить только аудио файлы:

gphoto2 --get-all-audio-data --folder /store_00010001/mysounds

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

Загрузка файлов на ваше устройство

Теперь, когда вы знаете свои потенциальные целевые папки, вы можете загружать файлы со своего компьютера на свое устройство. Например, предполагая, что в вашем текущем каталоге есть файл example.epub, вы можете отправить его на ваше устройство с опцией --upload-file совместно с опцией --folder, чтобы указать, в какое место хранения вы хотите загрузить:

gphoto2 --upload file example.epub --folder store_00010001

Вы можете создать каталог на своем устройстве, если вы предпочитаете загружать несколько файлов в новую папку:

gphoto2 --mkdir books --folder store_00010001
gphoto2 --upload-file *.epub --folder store_00010001/books

Список файлов на вашем устройстве

Чтобы просмотреть файлы, загруженные на ваше устройство, используйте опцию: --list-files

$ gphoto2 --list-files --folder /store_00010001
There is 1 file in folder '/store_00010001'
#1     example.epub 17713 KB application/x-unknown
$ gphoto2 --list-files --folder /store_00010001/books
There is 1 file in folder '/store_00010001'
#1    example0.epub 17713 KB application/x-unknown
#2    example1.epub 12264 KB application/x-unknown
[...]

Изучение ваших вариантов

Большая часть функционала gPhoto2 зависит от вашего устройства, поэтому ваш опыт может отличаться от других.
Есть много других опций. Изучите их:

gphoto2 --help
Поделитесь с друзьями

Добавить комментарий

0 комментариев
Новіші
Старіші Найпопулярніші
Вбудовані Відгуки
Переглянути всі коментарі
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x