Nous avons authentifié connexion, crypté archives, rsync et le transport multiple protocoles (y compris HTTP, WebDAV, FTP et SSH/SFTP) dans un seul outil : rclone
. Il prend en charge système de fichiers local et un certain nombre de stockage en ligne . De plus, il possède les quatre éléments mentionnés ci-dessus. serveurs intégrés . Cela signifie que tout ce dont vous avez besoin des deux côtés est rclone
. Pas d'accès à la racine est nécessaire non plus. Si vous voulez monter un répertoire distant (en utilisant rclone mount
), mais cela nécessite le support de FUSE et un accès Root sur Android.
rclone
dispose d'un cryptage intégré, c'est-à-dire que les fichiers à distance seront créés de manière cryptée. Plusieurs méthodes d'authentification sont également prises en charge, notamment le nom d'utilisateur/mot de passe et les clés RSA (avec SFTP), mais elles sont généralement inutiles lorsque le chiffrement est déjà présent.
Un cas d'utilisation simple :
Sur le serveur :
Exécutez le serveur SSH minimal s'il n'est pas déjà en marche :
~$ mkdir -p BackupDir/Encrypted
~$ rclone serve sftp --user <username> --pass <password> --addr :2222 BackupDir
Au téléphone :
Créez un mot de passe obscur :
~$ rclone obscure <password>
Créer un fichier de configuration (utiliser rclone config
pour les étapes simples) :
# rclone.conf
[PLAIN_TARGET]
type = sftp
host = <server_ip>
port = 2222
user = <username>
pass = <obscure_password>
#key_file = /path/to/.ssh/id_rsa
[CRYPT_TARGET]
type = crypt
remote = PLAIN_TARGET:/Encrypted
filename_encryption = standard
directory_name_encryption = true
password = <obscure_password>
Copie du fichier de test sur le serveur sans et avec cryptage :
~$ echo Hi >test_file
~$ rclone --config rclone.conf sync test_file PLAIN_TARGET:/
~$ rclone --config rclone.conf sync test_file CRYPT_TARGET:/
SFTP prend en charge la modification horodatage WebDAV et FTP ne le font pas. Cependant, liens symétriques ne peuvent pas être transférés en tant que liens symboliques, ils sont soit ignorés, soit le fichier d'origine est copié, soit le fichier d'origine est copié. .rclonelink
est créé. Un moyen de copier les liens symboliques et toutes les métadonnées, y compris les horodatages, attributs étendus (comme les étiquettes SELinux), et ACLs est de jeter tar
flux à rclone rcat
:
~$ tar --xattrs -cpvzf - test_file | rclone rcat CRYPT_TARGET:/test_file.tgz
De même, vous pouvez récupérer le fichier en utilisant rclone cat
. Cela permettra également de réduire considérablement temps de transfert (même jusqu'à moins de la moitié), en particulier si vous avez un grand nombre de fichiers de petite taille. Ajout d'un nombre raisonnable compression a tar
peut même réduire l'utilisation de l'espace et le temps, mais une compression élevée peut aussi mal tourner. Cependant, cette méthode La synchronisation incrémentielle ne fonctionne pas et vous devez untar
pour utiliser des fichiers à distance. Il est également possible (en utilisant des scripts) de ne trouver que les fichiers modifiés en exécutant rclone check
ou en passant l'option --dry-run
a rclone sync
et ensuite ajouter ces fichiers à tar
archives.
Je ne suis pas sûr qu'un zip de /
est suffisant à des fins de sauvegarde.
Sous Android, rootfs /
contient un certain nombre de répertoires et de points de montage - des pseudo-systèmes de fichiers tels que sysfs
, procfs
et les systèmes de fichiers en lecture seule comme system
y vendor
les partitions - qui ne peuvent pas être ou n'ont pas besoin d'être sauvegardées. Les paramètres de l'utilisateur, les données des applications et les données personnelles sont stockés dans /data
partition. Pour plus de détails, voir Partitions et systèmes de fichiers Android y Comment l'espace disque est utilisé sur un appareil Android ? .
Vous pouvez donc sauvegarder des répertoires sélectionnés à partir de /data
ou toute la partition au maximum. Cependant, comme mentionné par @ alecxs en commentaire, si vous avez l'intention de restaurer les données des applications (en /data/data
), vous devrez vous occuper minutieusement des métadonnées des fichiers - en particulier les UID/GID et les contextes SELinux.
Disons que vous voulez sauvegarder l'ensemble /data
partition, do :
~# tar --xattrs -cpvzf - /data | rclone -P rcat PLAIN_TARGET:/data.tgz
Pour des idées sur la façon de vider des partitions complètes (périphériques de bloc), voir Comment récupérer un fichier supprimé de la partition /data ?