Android/data
, cette procédure n'est donc plus valide. Je procède désormais à un backup par FolderSync (voir en fin de page).
Pour ceux que cela pourrait intéresser, voici comment je procède pour le backup de mon téléphone. Comme je ne fais absolument aucune confiance aux différents clouds, je n'utilise pas la sauvegarde automatique proposée par Google ou les différents constructeurs. J'effectue la sauvegarde uniquement du téléphone vers mon ordinateur personnel avec les logiciels de mon choix. Le backup n'est pas automatique: il est en lancement manuel.
Ce qui est sauvegardé:
Les paramètres des applications ne sont donc pas sauvegardés (sauf les applications qui enregistrent leurs paramètres sous forme de fichiers).
Sur le téléphone:
Sur l'ordinateur:
Cela ne fait que 2 actions simples à effectuer pour lancer le backup, une fois par semaine.
Fonctionnement: Mon script monte (via sshfs) le stockage du téléphone exposé par primitive ftpd dans un répertoire. Puis borg vient faire la sauvegarde de ce répertoire (ce qui embarque également les fichiers de sauvegarde contacts/sms/agenda créés par SuperBackup).
Avant que le script soit utilisable, il faut paramétrer un certain nombre de choses:
/storage/emulated/0/SmsContactBackup/…
)mkdir backup-telephone.borg ; borg init --encryption=none backup-telephone.borg/
)J'ai parfaitement conscience que ce mode de backup n'est pas adapté à tout le monde, puisqu'il nécessite deux actions manuelles pour lancer un backup. Cela implique une certaine discipline.
Mais il a l'avantage:
Voici le script que j'utilise (certaines informations confidentielles ont bien entendu été modifiées).
#!/bin/bash cd "${0%/*}" mkdir -p mount if [ ! -d "mount/emulated/0/Android" ]; then echo "Montage du répertoire distant..." echo "motdepasse" | sshfs admin@192.168.0.13:/storage mount -p 11222 -o password_stdin fi if [ ! -d "mount/emulated/0/Android" ]; then echo "Montage incorrecte. Arrêt du backup." exit fi # Backup borg du téléphone (CC1D-1527/ = carte MicroSD ; emulated/0/ = mémoire interne du téléphone) borg create --list --filter=AME -v --progress --compression zstd,7 --stats --files-cache=ctime,size --exclude-caches backup-telephone.borg::{now} mount/CC1D-1527/ mount/emulated/0/ # Démontage une fois le backup terminé: fusermount -u mount # Purge des backups si vous le souhaitez: #borg prune -v --list --stats --keep-daily=7 --keep-weekly=4 --keep-monthly=12 backup-telephone.borg/ echo "--- Backup terminé ---" read
À noter:
--exclude-caches
):Signature: 8a477f597d28d172789f06886806bc55
Explication de toutes les options de la ligne de commande borg utilisée:
create
: on créé un backup--list
: on affiche chaque fichier sauvegardé--filter=AME
: on affiche que les fichiers ajoutés et modifiés.-v
: verbose pour que borg dise ce qu'il fait.--progress
: affiche la progression du backup (permet de voir quels répertoire borg est en train de balayer)--compression zstd,7
: Compression avec l'algorithme zstd (la compression est assez forte, mais plus rapide que le taux de transfer par wifi)--stats
: afficher des statistiques à la fin du backup. Regadez en particulier la ligne This archive, colonne Deduplicated size : C'est la quantité de données dont votre backup borg a augmenté.--files-cache=ctime,size
: pour savoir si un fichier est à examiner, borg regarde par défaut l'inode (si l'inode a changé, il va lire le contenu du fichier). Or les inodes ne sont pas constants en sshfs, ce qui ferait des transfers de fichiers inutiles et une perte de temps. On utilise donc seulement ctime (change time) et taille.--exclude-caches
: on exclue les répertoires contenant le fameux fichier CACHEDIR.TAG
.backup-telephone.borg::{now}
: on sauvegarde dans le répertoire backup-telephone.borg
, et le backup a comme nom la date courante (exemple: 2020-08-23T13:48:04
)mount/CC1D-1527/ mount/emulated/0/
: Les répertoies à sauvegarder. Avec sshfs nous avons monté le répertoire /storage
du téléphone dans mount/
CC1D-1527/
correspond à la carte MicroSD. Chez vous, elle portera sans doute un nom différent. Notez que Primitive ftpd ne vous laisse l'accès qu'en lecture à ce répertoire.emulated/0/
correspond à la mémoire interne du téléphone. Notez que Primitive ftpd ne vous autorise pas l'accès à emulated/
mais qu'il vous autorise bien l'accès à emulated/0/
(en écriture).-zz
à rsync pour que ça passe))
Android 11 n'autorisant plus les applications à accéder à Android/data
, j'ai dû revenir à un backup par MTP (câble USB). C'est horriblement lent: MTP est très lent pour aller récupérer le contenu d'un répertoire (mais rapide pour transférer un fichier). Mais je n'ai pas le choix.
Voici donc le script que j'utilise:
#!/bin/bash cd "${0%/*}" #Création du repo: mkdir -p backup-mia3.borg; borg init --encryption=repokey-blake2 backup-mia3.borg sourcedir='/run/user/1002/gvfs/mtp:host=Xiaomi_Mi_A3_8366d9d2b359' borgdir=$(pwd) # Backup cd "$sourcedir" nice borg create --list --filter=AME -v --progress --compression=zstd,7 --stats --checkpoint-interval 900 --files-cache=mtime,size --exclude-caches -e "Carte SD Samsung/Android/data/net.osmand.plus/files/*.obf" "$borgdir/backup-mia3.borg::{now}" '.' cd "$borgdir" echo "--- Backup terminé ---" read
Une autre piste que MTP est d'utiliser adbfs : https://github.com/spion/adbfs-rootless
Sous Android 11, les applications ne peuvent plus accéder simplement à tout ce qu'il y a dans Android/data
. Les serveurs ssh/ftp ne fonctionnent plus correctement par rapport à ça. MTP permet le backup, mais c'est horriblement lent. J'ai donc choisi de passer par FolderSync qui - lui - accède sans problème à Android/data
et tout le stockage (interne et sdcard).
FolderSync est une application Android. La version gratuite est déjà très sympa, mais j'ai pris la version payante qui a des fonctions plus avancées.
Je procède donc comme suit:
Inconvénient:
Avantage:
Pour faire le backup, je dois:
Ce n'est pas très contraignant.
À noter:
Pour plus d'informations:
EDIT: Vous êtes plusieurs à me parler de SyncThing : Même si l'application est super sympa à utiliser, elle ne me convient pas. Je préfère FolderSync car il est capable de se greffer à n'importe quel serveur existant (ssh, ftp, smb, webdav/NextCloud, et même GoogleDrive, DropBox, etc.). FolderSync possède aussi des fonctions plus poussées (comme le fait de ne se synchroniser que sur certains réseaux Wifi).