Jak mogę połączyć się z moim urządzeniem z Androidem w celu rsync muzyki (lub innych rzeczy)?
Jak mogę połączyć się z moim urządzeniem z Androidem w celu rsync muzyki (lub innych rzeczy)?
Odpowiedzi:
To łatwiejsze niż wszyscy mówią, po pierwsze zauważ, że kiedy GVFS montuje MTP, będzie on dostępny pod. Możesz to wymusić, otwierając telefon w graficznej przeglądarce plików (thunar / nautilus / etc)
/run/user/$UID/gvfs
idź tam. Zakładając, że masz jedno urządzenie mtp, powinno to działać:
$ cd /run/user/$UID/gvfs/mtp*
Znajdź, gdzie chcesz przesłać pliki, a następnie zsynchronizuj je z nimi
$ 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
: Zdecydowanie sugeruję użycie, --inplace
bez którego mtp może chcieć skopiować nowy plik, a następnie zmienić jego nazwę na stary. Może to skutkować dwukrotnym skopiowaniem pliku na kartę SD: raz w celu przesłania mtp na kartę SD, a innym razem, ponieważ sterownik MTP może nie obsługiwać (mv), może (cp / rm) pod maską być bezpieczny .--verbose
, --progress
, --recursive
ale są całkiem wymaga dokumentowania.--omit-dir-times
--no-perms
są wymagane, ponieważ mtp tego nie obsługuje.--omit-dir-times --no-perms --ignore-existing
. Rsync nie ustawia znaczników czasu katalogu przez MTP. Jestem prawie pewien, że „brak uprawnień” jest domyślny, ale lubię to określać. Ignorowanie istniejących plików pozwala na wybranie tam, gdzie zostało przerwane.
--ignore-existing
? To po prostu traci nadmiarowość. Zawsze możesz --size-only
zmniejszyć synchronizację do listy katalogów, a nie sum kontrolnych. Dodam --omit-dir-times
i, --no-perms
ponieważ to brzmi użytecznie, i wydaje mi się, że pamiętam błąd na końcu na ten temat.
--ignore-existing
próby synchronizacji wszystkich plików. Podoba mi się twoja --size-only
sugestia. Spróbuję zamiast tego następnym razem.
~/Videos/ ./
Znalazłem to rozwiązanie:
Edytuj lokalny ssh-config, aby zmienić domyślny port dla hosta „android”
.ssh/config
host android
Port 2222
rsync -rvlc Muzyka Android: SDCardLink /
Aktualizacja
I preferują -rvlc
do -a
ponieważ można uzyskać wiele ostrzeżeń od ustawiania uprawnień oraz znaczniki czasu nie działa. Ta opcja -c
znacznie przyspiesza drugą synchronizację.
I preferują -rvl --size-only
do -a
ponieważ można uzyskać wiele ostrzeżeń od ustawiania uprawnień oraz znaczniki czasu nie działa. Ta opcja --size-only
znacznie przyspiesza drugą synchronizację.
Niestety aplikacje muzyczne potrzebują trochę czasu, aby zobaczyć nowe pliki. Ponowne uruchomienie urządzenia pomaga.
rsync -avz -e 'ssh -p 2222' Music android:SDCardLink/
( stackoverflow.com/a/4630407/399105 )
--size-only
byłoby to najszybsze rozwiązanie. Nie jest to jednak tak bezpieczne, jak-c
192.168.1.5
które mogą być inne za każdym razem:rsync -avzhP --inplace --info=progress2 -e 'ssh -p 2222' 192.168.1.5:/storage/emulated/0/DCIM/Camera/ /home/username/path/to/pics/
Kopię zapasową rsync dla Androida można skonfigurować do synchronizacji w odwrotnej kolejności, czyli z hosta Linux na urządzenie z Androidem.
Za pomocą LlamaLab Automate można skonfigurować urządzenie z Androidem tak, aby automatycznie rsync działało w określonych warunkach, np .: