Come risincronizzarsi con Android


50

Come posso collegarmi al mio dispositivo Android per sincronizzare musica (o altre cose)?


Consiglio di modificarlo per spiegare esattamente quale azione ha prodotto quel messaggio di errore. (Ad esempio, se è l'output di un comando, è possibile includere il comando completo.)
Eliah Kagan,

1
forse interessante: Syncopoli
DJCrashdummy il

@DJCrashdummy se scrivi il tuo commento come risposta, lo voterò.
Guettli,

@guettli l'ho scritto solo come commento, perché Syncopoli è solo un client rsync (per ora).
DJCrashdummy,

Risposte:


50

In realtà usando rsync su MTP / usb

È più facile di quanto tutti dicano, per prima cosa nota che quando GVFS monta il mount MTP sarà disponibile sotto. Puoi forzarlo aprendo il telefono in un browser di file grafico (thunar / nautilus / ecc)

/run/user/$UID/gvfs

vai lì. Supponendo che tu abbia un dispositivo mtp, questo dovrebbe funzionare:

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

Trova dove vuoi trasferire anche i file, quindi sincronizzali su di esso

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

Opzioni Rsync

  • --inplace: Consiglio vivamente di usare --inplacesenza il quale mtp potrebbe voler copiare un nuovo file e quindi rinominarlo con quello vecchio. Ciò può comportare la copia del file sulla scheda SD due volte: una volta per il trasferimento mtp sulla scheda SD e un'altra volta perché il driver MTP potrebbe non supportare (mv), potrebbe essere (cp / rm) sotto il cofano per sicurezza .
  • leggere uomo rsync per una descrizione di --verbose, --progress, --recursivema sono abbastanza auto-documentazione.
  • --omit-dir-times --no-perms sono richiesti perché mtp non lo supporta.

3
Aggiungo le seguenti opzioni --omit-dir-times --no-perms --ignore-existing. Rsync non riesce a impostare i timestamp della directory su MTP. Sono abbastanza sicuro che "nessuna autorizzazione" sia l'impostazione predefinita, ma mi piace specificarlo. Ignorare i file esistenti consente di riprendere da dove era stato interrotto.
Stephen Ostermiller,

4
Perché --ignore-existing? Questo sta solo perdendo la ridondanza. Puoi sempre --size-onlyche riduce la sincronizzazione con l'elenco delle directory e non i checksum. Ho intenzione di aggiungere il --omit-dir-timese --no-permsperché sembra utile, e mi sembra di ricordare di aver ricevuto un errore alla fine.
Evan Carroll,

Rsync ha problemi a impostare correttamente i timestamp su MTP, quindi senza di --ignore-existingesso prova a sincronizzare tutti i file. Mi piace il tuo --size-onlysuggerimento. Ci proverò invece la prossima volta.
Stephen Ostermiller il

3
Uso anche mettere la barra finale sulla destinazione, quindi non devo usare una stella sulla fonte:~/Videos/ ./
Stephen Ostermiller,

Ho anche dovuto aggiungere '--delete-after' per farlo eliminare i file che avevo già rimosso dalla cartella della musica sul computer. Quindi il comando completo è: rsync --verbose --progress --omit-dir-times --no-perms --recursive --inplace --ignore-esistente --delete-after / home / user / MUSIC /.
happyskeptic,

39

Usando sshelper

Ho trovato questa soluzione:

  • Installa sshelper sul dispositivo (non è necessario alcun dispositivo rooted, disponibile su Google Play Market)
  • Nella mia WLAN il dispositivo si chiama "Android". Ma puoi usare l'IP, se non puoi assegnare al dispositivo un nome host.

Modifica ssh-config locale, per modificare la porta predefinita per l'host "android"

.ssh/config
host android
    Port 2222
  • Avvia sshelper sul dispositivo.
  • Collega il dispositivo Android alla tua WLAN.

rsync -rvlc Music android: SDCardLink /

Aggiornare Io preferisco -rvlcal -adato che si ottiene un sacco di avvertimenti in quanto i permessi e le marche temporali non funziona. L'opzione -crende la seconda sincronizzazione molto più veloce.

Io preferisco -rvl --size-onlyal -adato che si ottiene un sacco di avvertimenti in quanto i permessi e le marche temporali non funziona. L'opzione --size-onlyrende la seconda sincronizzazione molto più veloce.

Purtroppo è necessario del tempo perché le app musicali vedano i nuovi file. Il riavvio del dispositivo aiuta.


13
Un modo alternativo per usare rsync con SSHelper senza dover modificare .ssh / config: rsync -avz -e 'ssh -p 2222' Music android:SDCardLink/( stackoverflow.com/a/4630407/399105 )
bmaupin

1
@guettli quale opzione -c checksum per sincronizzare i file musicali? questo può rallentare significativamente
EdiD

5
@guettli di rsync man: -c, --checksum. Senza questa opzione, rsync utilizza un "controllo rapido" che (per impostazione predefinita) controlla se le dimensioni di ciascun file e l'ora dell'ultima modifica corrispondono tra il mittente e il destinatario. Questa opzione modifica questa opzione per confrontare un checksum a 128 bit per ogni file con dimensioni corrispondenti. Generare il checksum significa che entrambe le parti impiegheranno molto I / O del disco a leggere tutti i dati nei file nel trasferimento, quindi questo può rallentare significativamente le cose.
EdiD,

4
@guettli Immagino che --size-onlysarebbe la soluzione più veloce. Tuttavia non è così salvo come-c
Niels

2
Ho usato il tethering USB e ho ottenuto trasferimenti molto più veloci. Il seguente comando ha funzionato per me dopo aver eseguito SSHelp e mostrando IP 192.168.1.5che potrebbe essere ogni volta diverso:rsync -avzhP --inplace --info=progress2 -e 'ssh -p 2222' 192.168.1.5:/storage/emulated/0/DCIM/Camera/ /home/username/path/to/pics/
Organic Addict il

3

Il backup rsync per Android può essere configurato per la sincronizzazione inversa, ovvero da un host Linux a un dispositivo Android.

E con l'aiuto di LlamaLab Automate è possibile configurare il dispositivo Android per la sincronizzazione automatica a condizioni specifiche, ad esempio:

  1. alle 5 del mattino,
  2. quando il telefono è collegato a un Wi-Fi specifico e
  3. quando si sta caricando.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.