Как я могу подключиться к своему устройству Android для rsync музыки (или другого материала)?
Я нашел это решение:
Отредактируйте локальную ssh-конфигурацию, для изменения порта по умолчанию для хоста "андроид"
.ssh/config
host android
Port 2222
rsync-rvlc Музыка android:SDCardLink/
Обновите
I предварительных друзей -rvlc
кому: -a
так как Вы получаете много предупреждений начиная с установки полномочий, и метки времени не работает. Опция -c
делает вторую синхронизацию намного быстрее.
Я предварительный друг -rvl --size-only
кому: -a
так как Вы получаете много предупреждений начиная с установки полномочий, и метки времени не работает. Опция --size-only
делает вторую синхронизацию намного быстрее.
К сожалению, требуется некоторое время для музыкальных приложений для наблюдения новых файлов. Перезапуск устройства помогает.
Это проще, чем все говорят, сначала обратите внимание, что когда GVFS монтирует монтирование MTP, оно будет доступно под. Вы можете форсировать это, открыв телефон в графическом браузере файлов (thunar / nautilus / etc)
/run/user/$UID/gvfs
. Предполагая, что у вас есть одно устройство mtp, это должно работать:
$ cd /run/user/$UID/gvfs/mtp*
Найдите, куда вы также хотите передать файлы, и затем rsync их на него
$ cd SanDisk\ SD\ card/Movies/
$ pwd # prints "/run/user/1000/gvfs/mtp:host=%5Busb%3A003%2C096%5D/SanDisk SD card/Movies"
$ rsync --verbose --progress --omit-dir-times --no-perms --recursive --inplace ~/Videos/ ./
--inplace
: Я настоятельно предлагаю использовать --inplace
, без которого mtp может захотеть скопировать файл новым, а затем переименовать его в старый. Это может привести к копированию файла на SD-карту дважды: один раз для переноса mtp на SD-карту, а другой раз, потому что драйвер MTP может не поддерживать (mv), но может (cp / rm) находиться под капотом для обеспечения безопасности. . [+1112] --verbose
, --progress
, --recursive
, но они довольно самодокументированы. --omit-dir-times
--no-perms
требуются, потому что mtp не поддерживает это. Резервное копирование rsync для Android можно настроить на обратную синхронизацию, то есть с хоста Linux на устройство Android.
А с помощью Ламы можно настроить устройство Android на автоматическую rsync при определенных условиях, например:
Я искал решение для rsync ОТ Android на NAS для резервного копирования изображений.
Grsync, графическая версия rsync, работала отлично.
К счастью, он также поддерживает rsync для Android. Единственная проблема - он не может сохранять временные метки, поэтому все передаваемые файлы будут иметь временные метки момента их rsync.
sudo apt install android-file-transfer
sudo apt-get install grsync
Похоже, ключ, который я использовал в командной строке для rsync с Android, не работает с mtp: когда я проверяю «сохранить разрешения», «сохранить владельца» и «сохранить группу» в grsync, файл не передается.Настройки grsync по умолчанию «сохранять время», «Подробный» и «Показать ход передачи» просто работают.
При rsync на android ключ -t следует опускать: файлы будут переданы, но rsync выдаст ошибку о не сохранении временных меток.
Вывод Grsync для командной строки ОТ Android:
rsync -r -t -v --progress -s /run/user/1000/gvfs/mtp\:host\=%5Busb%3A001%2C013%5D/Micro\ SD/test /home/FREENAS/
Вывод Grsync для командной строки В Android:
rsync -r -v --progress -s /home/FREENAS/test /run/user/1000/gvfs/mtp:host=%5Busb%3A001%2C013%5D/Micro\ SD/
где run/user/1000/gvfs/mtp:host=%5Busb%3A001%2C013%5D мое крепление для телефона Android точка.
Ничего из вышеперечисленного не дало того, что я искал. В частности, часть вопроса ОП: как мне rsync
мою музыку на мой телефон Android? Что ж, я взял часть предложений из этих ответов и написал свой собственный сценарий Bash:
#!/bin/bash
echo "Starting rsync with Android."
src_dir="/home/joshua/Music"
dst_dir="/run/user/$UID/gvfs/mtp:host=OnePlus_HD1925_SERIAL/Internal shared storage"
rsync --progress \
--human-readable \
--omit-dir-times \
--no-perms \
--recursive \
--inplace \
--size-only \
--exclude='*.jpg' \
--exclude='*.JPG' \
--exclude='*.jpeg' \
--exclude='*.JPEG' \
--exclude='*.png' \
--exclude='*.bmp' \
--exclude='*.txt' \
--exclude='*.pdf' \
--delete \
"$src_dir" "$dst_dir"
echo "rsync operation is done. Enjoy the music :)"
Я просто поместил его в ~ / .local / bin
, где у меня есть другие сценарии (по умолчанию для вашей системы PATH
должен уже иметь этот каталог). Вам просто нужно убедиться, что передача файлов включена и что хранилище действительно подключено, прежде чем запускать его. Если вы этого не сделаете, ничего страшного не случится: rsync
просто накричит на вас.
Этот сценарий:
только размер
Кроме того, если вы выберете этот ответ именно потому, что вам нравятся теги - exclude
, вам также может потребоваться способ очистить свой телефон, если он уже синхронизировал целую кучу нежелательных изображений. :
# Remove all *.jpg and *.JPG from the current directory, recursively.
find . -iname *.jpg -exec rm {} \;
Я знаю, что OP хотел использовать rsync, но если идея состоит в том, чтобы синхронизировать каталоги, я настоятельно рекомендую использовать syncthing
. Многие, многие, преимущества:
syncthing
как часть решения для резервного копирования вашего мобильного телефона в два этапа: (1) вы синхронизируете все важные данные с вашего мобильного телефона на внешний хост (2) вы настраиваете решение для резервного копирования на этом хосте. Я лично синхронизирую все важные данные с любого устройства, которым я владею, по крайней мере, с другим устройством, возможно, двумя, расположенными в физически разных местах; по крайней мере одно из этих устройств имеет RAID-диски; Затем я добавляю snapper
на одно устройство, чтобы сохранить старые версии всех файлов; или вы можете использовать функцию syncthing
для достижения тех же результатов.
И последнее предостережение. Если на одном устройстве не хватает места, это устройство прекратит синхронизацию, но вы не получите от него никакой ошибки, поэтому вы должны время от времени проверять. Если вы используете snapper
, то довольно легко заполнить диски, caveat emptor.
Termux предоставляет множество утилит командной строки Linux для Android, включая rsync
и openssh
.
Вы можете настроить SSH-сервер на своем Android-устройстве, а затем использовать rsync
через SSH, при условии, что и ваш ПК, и ваше Android-устройство подключены к одному и тому же соединению WLAN.
Вики Termux четко объясняет шаги, необходимые для настройки SSH и использования rsync
.
Подводя итог:
Настройте Termux
Хранилище
) из настроек Android$ пароль
Новый пароль:
Введите повторно новый пароль:
Новый пароль успешно установлен.
$ точное обновление
$ удачное обновление
Настроить openssh
$ apt install openssh
$ сшд
По умолчанию прослушивается порт 8022
. Установить rsync
$ apt install rsync
Для начала все, что вам нужно, это:
$ кто
u0_a223
$ ip -4 а | греп wlan0 | хвост -1
инет 192.168.1.101/16 brd 192.168.255.255 глобальная область действия wlan0
, в данном случае это 192.168.1.101
.
Теперь с помощью rsync
можно делать практически все что угодно.Например, если вы хотите скопировать каталог ~/Music
со своего ПК в каталог /sdcard
устройства Android, вы можете сделать что-то вроде:
$ rsync -e 'ssh -p 8022' -aP ~/Music u0_a223@192.168.1.101:/sdcard
При запросе пароля, введите тот, который вы установили ранее.