69 votes

Comment synchroniser vers Android ?

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

68voto

NO WAR WITH RUSSIA Points 7300

Utilisation actuelle de rsync sur MTP/usb

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

/run/user/$UID/gvfs

allez ici. En supposant que vous ayez un périphérique mtp, cela devrait fonctionner :

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

Trouvez où vous voulez transférer les fichiers, puis utilisez rsync pour les transférer

$ cd SanDisk\ SD\ card/Movies/

$ pwd # imprime "/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 recommande vivement d'utiliser --inplace sans lequel le mtp pourrait vouloir copier le fichier de manière nouvelle, puis le renommer avec l'ancien. Cela peut entraîner la copie du fichier sur la carte SD deux fois : une fois pour le transfert mtp vers la carte SD, et une autre parce que le pilote MTP peut ne pas prendre en charge (mv), il peut (cp/rm) en interne pour être sûr.
  • Lisez le manuel de rsync pour une description de --verbose, --progress, --recursive mais ils sont assez explicites.
  • --omit-dir-times --no-perms sont nécessaires car mtp ne prend pas en charge cela.

44voto

user42348 Points 780

Utilisation de sshelper

J'ai trouvé cette solution :

  • Installer sshelper sur l'appareil (pas besoin de rooter l'appareil, disponible sur le marché Google Play)
  • Dans mon WLAN, l'appareil est appelé "android". Mais vous pouvez utiliser l'IP si vous ne pouvez pas donner un nom d'hôte à l'appareil.

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

.ssh/config
host android
    Port 2222
  • Démarrer sshelper sur l'appareil.
  • Connecter l'appareil android à votre WLAN.

rsync -rvlc Music android:SDCardLink/

Mise à jour Je préfère -rvlc à -a car vous obtenez beaucoup d'avertissements car le réglage des autorisations et des horodatages ne fonctionne pas. L'option -c rend la deuxième synchronisation beaucoup plus rapide.

Je préfère -rvl --size-only à -a car vous obtenez beaucoup d'avertissements car le réglage des autorisations et des horodatages ne fonctionne pas. L'option --size-only rend la deuxième synchronisation beaucoup plus rapide.

Malheureusement, il faut un certain temps pour que les applications de musique voient les nouveaux fichiers. Redémarrer l'appareil aide.

3voto

Steven C. Howell Points 1998

Sauvegarde rsync pour Android peut être configuré pour synchroniser en sens inverse, c'est-à-dire d'un hôte Linux vers un appareil Android.

Et avec l'aide de LlamaLab Automate, on peut configurer l'appareil Android pour synchroniser automatiquement selon des conditions spécifiques, par exemple :

  1. à 5 heures du matin,
  2. lorsque le téléphone est connecté à un Wi-Fi spécifique, et
  3. lorsqu'il est en charge.

3voto

Anwar Points 895

J'étais à la recherche d'une solution pour rsync DE android vers NAS pour sauvegarder des images.

Grsync, version graphique de rsync, a parfaitement fonctionné.

Heureusement, il peut également effectuer un rsync VERS android. Le seul problème est qu'il ne peut pas conserver les horodatages, de sorte que tous les fichiers transférés auront les horodatages du moment où ils ont été rsyncés.

    sudo apt install android-file-transfer
    sudo apt-get install grsync

Il semble que la clé -a que j'utilisais dans la ligne de commande pour rsync depuis android ne fonctionne pas avec mtp : lorsque je sélectionne "conserver les autorisations", "conserver le propriétaire" et "conserver le groupe" dans grsync, aucun fichier n'est transféré. Les paramètres par défaut de grsync "conserver l'heure", "Verbeux" et "Afficher la progression du transfert" fonctionnent simplement.

En rsync vers android, la clé -t doit être omise : les fichiers seront transférés mais rsync générera des erreurs en ne préservant pas les horodatages.

Sortie de Grsync pour la commande DE android en ligne :

    rsync -r -t -v --progress -s /run/user/1000/gvfs/mtp\:host\=%5Busb%3A001%2C013%5D/Micro\ SD/test /home/FREENAS/

Sortie de Grsync pour la commande VERS android en ligne :

   rsync -r -v --progress -s /home/FREENAS/test /run/user/1000/gvfs/mtp:host=%5Busb%3A001%2C013%5D/Micro\ SD/

où run/user/1000/gvfs/mtp:host=%5Busb%3A001%2C013%5D est le point de montage de mon téléphone android.

1voto

Joshua Detwiler Points 223

Aucune des solutions ci-dessus n'était tout à fait ce que je cherchais. En particulier, une partie de la question de l'OP : comment puis-je rsync ma musique sur mon téléphone Android ? Eh bien, j'ai pris des parties des suggestions de ces réponses et j'ai écrit mon propre script Bash :

#!/bin/bash

echo "Démarrage de rsync avec 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 "L'opération rsync est terminée. Profitez de la musique :)"

J'ai simplement déposé cela dans ~/.local/bin où j'ai d'autres scripts (le PATH par défaut de votre système doit déjà avoir ce répertoire en réalité). Vous devez juste vous assurer que le transfert de fichiers est activé et que le stockage est réellement monté avant de l'exécuter. Rien de grave ne se produira si vous ne le faites pas : rsync vous le fera savoir.

Ce script :

  • Prend en compte le fait que les Androids ne peuvent pas conserver les métadonnées de style ext4 sur les fichiers
  • est vraiment plus rapide que les autres options selon mon expérience, en utilisant size-only
  • Exclut les pochettes d'albums et les scans pour ne pas inonder le système de fichiers de votre téléphone :)
  • Effectue véritablement une synchronisation ! Il supprime des éléments lorsque vous en supprimez de la source, comme la correction des métadonnées des chansons et leur remplacement par le bon fichier au lieu de conserver deux copies.

En outre, si vous choisissez cette réponse spécifiquement parce que vous aimez les balises --exclude, vous pourriez également avoir besoin d'une manière de nettoyer votre téléphone si celui-ci a déjà synchronisé tout un tas d'images indésirables :

# Supprimer tous les fichiers *.jpg et *.JPG du répertoire actuel, de manière récursive.
find . -iname *.jpg -exec rm {} \;

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X