Sauvegarde du téléphone avec Termux

Comment sauvegarder des fichiers de son téléphone vers un serveur? Si vous voulez que tout reste chez vous, il y a plusieurs solutions. J'ai essayé syncthing et ça fonctionne bien mais ne correspond pas à mes besoins.

Je veux juste sauvegarder le contenu du téléphone quand je le demande. J'ai découvert Termux ( Merci Grisebouille ) et j'ai pu réaliser mes sauvegardes comme je le souhaite.

Avant de commencer

D'un côté, munissez vous d'un téléphone sous LineageOS ou Android. Installez Termux et son supplément Termux:Widget.

De l'autre côté, il faut un serveur SSH, pas plus pas moins.

Termux

Cette application permet d'avoir un terminal sur son téléphone. Donc la ligne de commande et toutes ses possibilités.

Après l'installation, lancez une mise à jour :

pkg update

Pour accéder aux données du téléphone, il faut lancer :

termux-setup-storage

Vous aurez accès aux fichiers du téléphone et pas seulement au «home» de Termux.

En plus un répertoire «storage» est crée dans le répertoire «home» de Termux avec des raccourcis vers :

Avec mon écran 5 pouces et sans clavier, une utilisation prolongée du terminal est peu pratique. La solution existe, accédez au téléphone depuis un PC. Pour cela on installe un serveur SSH sur le téléphone et on le lance :

pkg install openssh
passwd
sshd

Puis on accède au téléphone depuis un PC :

ssh 192.168.X.X -p 8022

Si vous n'êtes pas sous GNU/Linux, vous pouvez utiliser PuTTY.

rsync

Comme le dit Wikipedia, rsync remote synchronization, (en français : « synchronisation distante ») est un logiciel libre de synchronisation de fichiers, distribué sous licence GNU GPL.

Pour installer rsync sur Termux :

pkg install rsync

Pour synchroniser le répertoires des photographies du téléphone vers le serveur :

rsync -r --progress --stats \
    /storage/emulated/0/DCIM/ \
    utilisateur@serveur:~/Téléphone/DCIM

L'«utilisateur» est celui du serveur SSH et «serveur» est l'adresse du serveur «bidule.org» ou en local «192.168.?.?».

Parmi les nombreuses options, je n'en utilise que trois :

Pas besoin de créer les répertoires sur la destination, c'est automatique.

Par contre, il faut renseigner le mot de passe du serveur SSH à chaque synchronisation.

SSH sans mot de passe

Pour éviter de renseigner le mot de passe à chaque connexion au SSH on peut utiliser un système de clés cryptographiques.

Sur le téléphone, on crée les clés et on copie la clé publique sur le serveur :

ssh-keygen
scp -p id_rsa.pub  utilisateur@serveur.net:~/.ssh/

Sur le serveur, on ajoute la clé à celles autorisées :

cat id_rsa.pub >> authorized_keys

Merci Korben pour cette solution.

Le script de sauvegarde

Pour sauvegarder mes quatre répertoires en une fois, j'écris un petit script que je place dans le répertoire «.shortcuts». Et je le rends exécutable :

pkg install nano
nano .shortcuts/sauvegarde.sh
chmod +x .shortcuts/sauvegarde.sh

Voici le script :

 #!/data/data/com.termux/files/usr/bin/sh

rsync -r --progress --stats \
        /storage/emulated/0/bluetooth/ \
        utilisateur@serveur:~/Téléphone/bluetooth
rsync -r --progress --stats \
        /storage/emulated/0/DCIM/ \
        utilisateur@serveur:~/Téléphone/DCIM
rsync -r --progress --stats \
        /storage/emulated/0/Download/ \
        utilisateur@serveur:~/Téléphone/Download
rsync -r --progress --stats \
        /storage/emulated/0/Movies/ \
        utilisateur@serveur:~/Téléphone/Movies
rsync -r --progress --stats \
        /storage/emulated/0/Music/ \
        utilisateur@serveur:~/Téléphone/Music

Grâce au supplément Termux:widget, je place un widget sur mon écran d'accueil. Ce dernier me liste tous les scripts dans le répertoire «.shortcuts». Et je peux les lancer avec un doigt.

Petit problème

D'habitude, j'édite mes fichiers avec vim qui existe sous Termux. Cependant j'ai eu des soucis avec donc j'ai opté pour nano.

Commentaires

Pas encore de commentaire.

Ajouter un commentaire

Vous pouvez utiliser la syntaxe Markdown dans votre commentaire.

Fil Atom des commentaires