Les avantages

  • rapidité : seuls les nouveaux fichiers et les fichiers modifiés sont copiés. Si la copie est interrompu, elle reprendra où on en était. On parle de sauvegarde incrémentale.
  • solidité : rsync est une solution robuste et massivement utilisée
  • sécurité : on ne passe pas par le réseau, on utilise que des logiciels libres.
  • simplicité : l’utilisation du terminal demande un peu d’apprentissage, mais une fois que c’est fait, relancer la procédure ne demande que de faire du copier-coller
  • les métadonnées des fichiers (notamment les dates) sont préservées

La procédure

  1. Installation des paquets nécessaires :

    sudo apt install -y jmtpfs rsync fuse3 mtp-tools adb tree
    
  2. Brancher le téléphone,

  3. Sur le smartpone, activer le “Transfert de fichier via USB”

  4. Montage du système de fichier du smartphone :

    mkdir -p ~/tmp/smartphone ; jmtpfs ~/tmp/smartphone ;
    
  5. Lister les fichiers présents sur le smartphone

     tree ~/tmp/smartphone
    
  6. Simuler le transfert des fichiers :

     rsync -avt ~/tmp/smartphone  /home/amnesia/Persistent/smartphone/ -n
    
  7. Lancer le transfert :

     rsync -avt ~/tmp/smartphone  /home/amnesia/Persistent/smartphone/
    
  8. Une fois le transfert terminé, démonter proprement :

    sync &&  umount ~/tmp/smartphone ;
    

En cas de problème

Par exemple

Device 0 (VID=XXX and PID=XXX) is a Samsung Galaxy models (MTP).
PTP_ERROR_IO: failed to open session, trying again after resetting USB interface
LIBMTP libusb: Attempt to reset device
LIBMTP PANIC: failed to open session on second attempt
terminate called after throwing an instance of 'MtpErrorCantOpenDevice'
  what():  Can't open device
  1. On démonte tout :

     umount -a
    
  2. On kill tout les processus dont les noms contiennent rsync et mtp

  3. On débranche le téléphone

  4. On rebranche le téléphone et on active le transfert via USB

  5. On relance la procédure