Android rsync nasıl


50

Android cihazımı rsync müziğine (veya başka şeylere) nasıl bağlayabilirim?


Bu hata mesajını tam olarak hangi eylemin ürettiğini açıklamak için bunu düzenlemenizi öneririm. (Örneğin, bir komutun çıktısıysa, tam komutu dahil edebilirsiniz.)
Eliah Kagan

1
belki ilginç: Syncopoli
DJCrashdummy 0

@DJCrashdummy Yorumunuzu cevap olarak yazarsanız, oy kullanırım.
guettli

@guettli Bunu sadece yorum olarak yazdım, çünkü Syncopoli sadece bir rsync istemcisidir (şimdilik).
DJCrashdummy

Yanıtlar:


50

Aslında MTP / usb üzerinden rsync kullanmak

Herkesin söylediğinden daha kolay, ilk önce GVFS MTP montajını monte ederken, altında kullanılabileceğini unutmayın. Telefonu grafik dosya tarayıcısında açarak bunu zorlayabilirsiniz (thunar / nautilus / etc)

/run/user/$UID/gvfs

içeri gir. Bir mtp cihazınız olduğunu varsayarsak, bu çalışması gerekir:

$ cd /run/user/$UID/gvfs/mtp*

Dosyaları da nereye aktarmak istediğinizi bulun ve ardından dosyalara senkronize edin

$ 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/ ./

Rsync seçenekleri

  • --inplace: Ben son derece kullanmanızı öneririz --inplaceMTP dosyayı yeni kopyalamak istediğiniz ve sonra eskisine yeniden adlandırmak hangi olmadan. Bu, dosyanın SD karta iki kez kopyalanmasına neden olabilir: bir kez SD karta mtp aktarımı için ve MTP sürücüsü desteklemediği için (mv) başka bir zaman, güvenli bir şekilde (cp / rm) olabilir .
  • açıklaması için adam rsync okumak --verbose, --progress, --recursiveama oldukça öz documenting konum.
  • --omit-dir-times --no-perms gerekli çünkü mtp bunu desteklemiyor.

3
Aşağıdaki seçenekleri ekliyorum --omit-dir-times --no-perms --ignore-existing. Rsync, dizin zaman damgalarını MTP üzerinden ayarlayamıyor. "İzin yok" un varsayılan olduğuna eminim, ancak belirtmeyi seviyorum. Mevcut dosyaları yoksaymak, bıraktığı yerden almaya izin verir.
Stephen Ostermiller

4
Neden --ignore-existing? Bu sadece fazlalık kaybı. Her zaman --size-onlysenkronizasyonu dizin girişine indirgeyebilir, sağlama toplamlarını azaltabilirsiniz . Bunu ekleyeceğim --omit-dir-timesve --no-permsçünkü bu kulağa faydalı geliyor ve sonunda bununla ilgili bir hata yaptığını hatırlıyor gibiyim .
Evan Carroll,

Rsync, MTP üzerinden zaman damgalarını ayarlama konusunda benim için uygun sorunları yaşıyor, bu yüzden --ignore-existingtüm dosyaları eşitlemeye çalışmaz. --size-onlyÖnerinizi beğendim . Bunu bir dahaki sefere deneyeceğim.
Stephen Ostermiller

3
Ayrıca varış ~/Videos/ ./
Stephen Ostermiller

Ayrıca bilgisayardaki müzik klasöründen zaten kaldırmış olduğum dosyaları silmek için '--delete-after' komutunu da eklemek zorunda kaldım. Yani tam komut şudur: rsync --verbose - progress - omit-dir-times - no-perms --recursive --inplace --enoren var --delete-after / home / user / MUSIC /.
happyskeptic

39

Sshelper'ı kullanma

Bu çözümü buldum:

  • Sshelper'ı cihaza yükle (google play pazarından temin edilebilecek köklü bir cihaza gerek yok)
  • WLAN'ımda cihaz "android" olarak adlandırılıyor. Ancak aygıta bir ana bilgisayar adı veremiyorsanız IP kullanabilirsiniz.

"Ss" ana bilgisayarının varsayılan bağlantı noktasını değiştirmek için yerel ssh-config dosyasını düzenleyin

.ssh/config
host android
    Port 2222
  • Cihazda sshelper'ı başlatın.
  • WLAN Android cihazını bağlayın.

rsync -rvlc Müzik android: SDCardLink /

Güncelleme Ben prefere -rvlciçin -asize çalışmıyor izinleri ve zaman damgalarını ayar beri uyarıların çok olsun çünkü. Bu seçenek -cikinci senkronizasyonu çok daha hızlı hale getirir.

Ben prefere -rvl --size-onlyiçin -asize çalışmıyor izinleri ve zaman damgalarını ayar beri uyarıların çok olsun çünkü. Bu seçenek --size-onlyikinci senkronizasyonu çok daha hızlı hale getirir.

Ne yazık ki, müzik uygulamalarının yeni dosyaları görmesi biraz zaman gerektiriyor. Cihazı yeniden başlatmak yardımcı olur.


13
.Ssh / config komutunu değiştirmek zorunda kalmadan, SSHelper ile rsync kullanmanın alternatif bir yolu: rsync -avz -e 'ssh -p 2222' Music android:SDCardLink/( stackoverflow.com/a/4630407/399105 )
bmaupin

1
@guettli müzik dosyalarını senkronize etmek için -c sağlama toplamı seçeneği nedir? Bu önemli ölçüde yavaşlayabilir
EdiD

5
@ rsync erkekten guettli: -c, --checksum. Bu seçenek olmadan, rsync (varsayılan olarak) her dosyanın boyutunun ve son değişiklik zamanının gönderici ile alıcı arasında eşleşip eşleşmediğini kontrol eden bir "hızlı kontrol" kullanır. Bu seçenek, eşleşen boyutta her dosya için 128 bit sağlama toplamı karşılaştırması için bunu değiştirir. Sağlama toplamı oluşturmak, her iki tarafın da aktarımdaki dosyalardaki tüm verileri okuyarak çok fazla disk G / Ç harcayacağı anlamına gelir, bu da işleri önemli ölçüde yavaşlatabilir.
EdiD

4
@guettli --size-onlyen hızlı çözüm olacağını tahmin ediyorum. Ancak o kadar tasarruf değil-c
niels

2
USB bağlantısı kullandım ve çok daha hızlı aktarımlar aldım. Ben SSHelp koştum ve onu IP göstererek sonra aşağıdaki komutu benim için çalıştı 192.168.1.5: Farklı her olabilirrsync -avzhP --inplace --info=progress2 -e 'ssh -p 2222' 192.168.1.5:/storage/emulated/0/DCIM/Camera/ /home/username/path/to/pics/
Organik Addict

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.