Comment rsync à Android


50

Comment puis-je me connecter à mon appareil Android pour écouter de la musique rsync (ou autre)?


Je recommande de modifier ceci pour expliquer exactement quelle action a généré ce message d'erreur. (Par exemple, s'il s'agit du résultat d'une commande, vous pouvez inclure la commande complète.)
Eliah Kagan

1
peut-être intéressant: Syncopoli
DJCrashdummy

@DJCrashdummy si vous écrivez votre commentaire comme réponse, je le voterai.
Guettli

@guettli j'ai écrit ceci uniquement à titre de commentaire, car Syncopoli n'est qu'un client rsync (pour l'instant).
DJCrashdummy

Réponses:


50

Utilisant réellement rsync sur MTP / usb

C'est plus facile que tout le monde le dit, notez d'abord que lorsque GVFS monte le montage MTP, il sera disponible sous. Vous pouvez le forcer en ouvrant le téléphone dans un navigateur de fichiers graphique (thunar / nautilus / etc).

/run/user/$UID/gvfs

aller là-bas. En supposant que vous ayez un périphérique mtp, cela devrait fonctionner:

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

Recherchez également où vous souhaitez transférer les fichiers, puis rsync leur

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

Options rsync

  • --inplace: Je suggère fortement d' utiliser --inplacesans lequel mtp peut vouloir copier le fichier un nouveau, puis le renommer à l'ancien. Cela peut entraîner la copie du fichier sur la carte SD à deux reprises: une fois pour le transfert de mtp sur la carte SD et une autre fois car le pilote MTP peut ne pas prendre en charge (mv), il peut (cp / rm) sous le capot être sûr .
  • lire rsync homme pour une description --verbose, --progress, --recursivemais ils sont assez autodocumenté.
  • --omit-dir-times --no-perms sont nécessaires parce que mtp ne supporte pas cela.

3
J'ajoute les options suivantes --omit-dir-times --no-perms --ignore-existing. Rsync ne parvient pas à définir les horodatages de répertoire sur MTP. Je suis à peu près sûr que "pas d'autorisations" est la valeur par défaut, mais j'aime bien le spécifier. Ignorer les fichiers existants lui permet de reprendre là où il s'est arrêté.
Stephen Ostermiller

4
Pourquoi --ignore-existing? C'est juste perdre la redondance. Vous pouvez toujours --size-onlyréduire la synchronisation à la liste des répertoires et non à des sommes de contrôle. Je vais ajouter le --omit-dir-timeset --no-permsparce que cela semble utile, et il me semble me souvenir avoir commis une erreur à la fin.
Evan Carroll

Rsync a des problèmes pour définir correctement les horodatages sur MTP. Par conséquent, sans --ignore-existingelle, il essaie de synchroniser tous les fichiers. J'aime ta --size-onlysuggestion. Je vais essayer cela plutôt la prochaine fois.
Stephen Ostermiller

3
J'utilise également la barre oblique de fin sur la destination afin que je n'aie pas à utiliser d'étoile sur la source:~/Videos/ ./
Stephen Ostermiller

J'ai également dû ajouter '--delete-after' pour le supprimer des fichiers que j'avais déjà supprimés du dossier de musique sur l'ordinateur. La commande complète est donc la suivante: rsync --verbose --progress --omit-dir-times --no-perms --recursive --inplace --ignore-existing --delete-after / home / user / MUSIC /.
happyskeptic

39

Utiliser sshelper

J'ai trouvé cette solution:

  • Installez sshelper sur le périphérique (aucun périphérique root requis, disponible sur Google Play Market)
  • Dans mon réseau local sans fil, l'appareil s'appelle "Android". Mais vous pouvez utiliser l'IP si vous ne pouvez pas donner un nom d'hôte à l'appareil.

Editez ssh-config local pour modifier le port par défaut de l'hôte "android"

.ssh/config
host android
    Port 2222
  • Démarrer sshelper sur le périphérique.
  • Connectez l'appareil Android à votre réseau local sans fil.

rsync -rvlc Music android: SDCardLink /

Mise à jour Je prefere -rvlcà -apuisque vous obtenez beaucoup d'avertissements depuis la définition d' autorisations et horodatées ne fonctionne pas. L'option -crend la deuxième synchronisation beaucoup plus rapide.

Je prefere -rvl --size-onlyà -apuisque vous obtenez beaucoup d'avertissements depuis la définition d' autorisations et horodatées ne fonctionne pas. L'option --size-onlyrend la deuxième synchronisation beaucoup plus rapide.

Malheureusement, les applications de musique ont besoin de temps pour voir les nouveaux fichiers. Redémarrer l'appareil aide.


13
Une autre façon d'utiliser rsync avec SSHelper sans avoir à modifier .ssh / config: rsync -avz -e 'ssh -p 2222' Music android:SDCardLink/( stackoverflow.com/a/4630407/399105 )
bmaupin le

1
@guettli quoi pour l'option de somme de contrôle -c pour la synchronisation de fichiers de musique? cela peut ralentir considérablement
EdiD

5
@guettli de rsync man: -c, --checksum. Sans cette option, rsync utilise une "vérification rapide" qui vérifie (par défaut) si la taille et l'heure de la dernière modification de chaque fichier correspondent entre l'expéditeur et le destinataire. Cette option change ceci pour comparer une somme de contrôle de 128 bits pour chaque fichier ayant une taille correspondante. La génération de la somme de contrôle signifie que les deux parties vont utiliser beaucoup d’E / S de disque pour lire toutes les données des fichiers du transfert, ce qui peut ralentir considérablement les choses.
EdiD

4
@guettli Je suppose que ce --size-onlyserait la solution la plus rapide. Cependant, il n'est pas si -c
sûr

2
J'ai utilisé le modem USB et obtenu des transferts beaucoup plus rapides. La commande suivante a fonctionné pour moi après avoir lancé SSHelp et affiché une adresse IP 192.168.1.5qui pourrait être différente à chaque fois: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

3

La sauvegarde rsync pour Android peut être configurée pour se synchroniser en sens inverse, c'est-à-dire d'un hôte Linux à un périphérique Android.

Et avec l’aide de LlamaLab Automate, vous pouvez configurer le périphérique Android pour rsync automatiquement sur des conditions spécifiques, par exemple:

  1. à 5 heures du matin,
  2. lorsque le téléphone est connecté à un réseau Wi-Fi spécifique, et
  3. quand il charge.
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.