Comment puis-je me connecter à mon appareil Android pour synchroniser de la musique (ou autre chose) avec rsync ?
Réponses
Trop de publicités?Je sais que l'auteur de la question voulait utiliser rsync, mais si l'idée est de synchroniser des répertoires, je recommande fortement d'utiliser syncthing
. Beaucoup, beaucoup, d'avantages :
- il fonctionnera en continu, pas besoin de le déclencher de temps en temps;
- il synchronisera de nombreux dossiers différents, vers de nombreux appareils différents, en même temps;
- vous pouvez utiliser
syncthing
comme partie d'une solution de sauvegarde pour votre téléphone portable, en deux étapes : (1) vous synchronisez toutes les données importantes de votre téléphone vers un hôte externe (2) vous mettez en place une solution de sauvegarde sur cet hôte.
Je synchronise personnellement toutes les données importantes de n'importe quel appareil que je possède vers au moins un autre appareil, éventuellement deux, situés dans des endroits physiquement différents; au moins l'un de ces appareils a des disques en raid; j'ajoute alors snapper
à un appareil, de sorte que les anciennes versions de tous les fichiers sont conservées; ou vous pouvez utiliser une fonctionnalité de syncthing
pour obtenir les mêmes résultats.
Une dernière note d'avertissement. Si vous manquez d'espace sur un appareil, cet appareil arrêtera syncthing, mais vous n'aurez aucune erreur de sa part, donc vous devriez vérifier de temps en temps. Si vous utilisez snapper
, il est assez facile de remplir les disques, caveat emptor.
Utilisation de Termux
Termux apporte tout un tas d'utilitaires de ligne de commande Linux à Android, y compris rsync
et openssh
.
Vous pouvez configurer un serveur SSH sur votre appareil Android, puis utiliser rsync
via SSH, à condition que votre PC et votre appareil Android soient connectés au même réseau WLAN.
Le wiki de Termux explique clairement les étapes requises pour configurer SSH et utiliser rsync
.
Pour résumer :
-
Configurer Termux
-
Accorder l'accès au système de fichiers de Termux (permission
Stockage
) depuis les paramètres Android -
Ouvrir Termux
-
Configurer un mot de passe
$ passwd Nouveau mot de passe : Retapez le nouveau mot de passe : Le nouveau mot de passe a été configuré avec succès.
-
Mettre à jour la liste des packages
$ apt update
-
Facultativement, mettre à jour également les packages existants (cela a résolu un problème de compatibilité dans mon cas)
$ apt upgrade
-
Configurer
openssh
-
Installer openssh
$ apt install openssh
-
Démarrer le démon ssh
$ sshd
Il écoute sur le port
8022
par défaut.
-
-
Installer
rsync
$ apt install rsync
Pour commencer, tout ce dont vous avez besoin est :
-
Votre nom d'utilisateur sur Termux
$ whoami u0_a223
-
L'adresse IP de l'appareil Android
$ ip -4 a | grep wlan0 | tail -1 inet 192.168.1.101/16 brd 192.168.255.255 scope global wlan0
qui, dans ce cas, est
192.168.1.101
.
Maintenant, vous pouvez faire presque tout avec rsync
. Par exemple, si vous souhaitez copier le répertoire ~/Music
de votre PC vers le /sdcard
de l'appareil Android, vous pourriez faire quelque chose comme :
$ rsync -e 'ssh -p 8022' -aP ~/Music u0_a223@192.168.1.101:/sdcard
Lorsqu'on vous demande un mot de passe, saisissez celui que vous avez configuré précédemment.
J'ai essayé rsync
via MTP, mais dans mon cas, la vitesse était vraiment lente. Si vous voulez essayer, voici une suggestion. Ma solution est basée sur la source suivante :
https://bbs.archlinux.org/viewtopic.php?id=261904
J'utilise Kubuntu, donc, il n'y a pas de dossier MTP dans le dossier /run/user/1000/gvfs/
. J'ai téléchargé le paquet suivant :
https://li.nux.ro/download/nux/dextop/el7/x86_64/simple-mtpfs-0.2-3.el7.nux.x86_64.rpm
Voici le fichier binaire qui a fonctionné sur Kubuntu 20.04. Vous pouvez le trouver dans le dossier bin
et le décompresser dans un dossier. Malheureusement, sur Plasma, il se peut qu'il ne monte pas le périphérique tant que nous n'avons pas tué un processus spécifique. Ensuite, vous pouvez utiliser la commande fuser
.
Tout d'abord, vous devez trouver votre périphérique avec la commande lsusb
:
$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 8087:0a2a Intel Corp. Bluetooth wireless interface
Bus 001 Device 011: ID 2717:ff48 Xiaomi Inc. Mi/Redmi series (MTP + ADB)
Bus 001 Device 003: ID 04f2:b3fd Chicony Electronics Co., Ltd HD WebCam (Asus N-series)
Bus 001 Device 006: ID 04fc:05d8 Sunplus Technology Co., Ltd Wireless keyboard/mouse
Bus 001 Device 004: ID 1bcf:08a0 Sunplus Innovation Technology Inc. Gaming mouse [Philips SPK9304]
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Ici, nous devons copier l'adresse MAC 2717:ff48
du périphérique Xiaomi. Exécutez les lignes suivantes et remplacez 2717:ff48
par l'adresse MAC de votre périphérique :
DATA=`lsusb | grep '2717:ff48'`
echo $DATA
# Reading the bus number:
BUS=`echo ${DATA:4:3}`
# Reading the device number:
DEV=`echo ${DATA:15:3}`
# Killing the process which is using the device (if any)
fuser -k /dev/bus/usb/$BUS/$DEV
Ensuite, vous pouvez exécuter le fichier binaire et spécifier votre chemin pour le dossier monté :
./simple-mtpfs --device 1 /tmp/xiaomi
Cependant, comme la vitesse était vraiment lente, j'ai abandonné, utilisé un lecteur de carte, et synchronisé les fichiers depuis un dossier local vers le périphérique USB. Peut-être que c'était l'option la plus simple. Dans mon cas, c'est la meilleure option car le dossier de destination contient certains fichiers à supprimer, et pour prolonger la durée de vie d'une carte SD, il vaut mieux ne pas supprimer ou créer de nouveaux fichiers lorsque ce n'est pas nécessaire.
- Réponses précédentes
- Plus de réponses