Bash + rclone · OneDrive ↔ Google Drive · Guide opérationnel open source
Un transfert cloud limité à la copie en Bash avec rclone
rclone gère déjà la pagination des services cloud, les nouvelles tentatives, la reprise des transferts et les empreintes fournies par les fournisseurs. Le travail d’ingénierie consiste à intégrer ces primitives dans une procédure opérationnelle qui échoue de manière sûre et tient compte des capacités.
Mis à jour ; 20 min de lecture.
En bref
FileArk est la solution gérée la plus simple pour les migrations volumineuses ou sans surveillance : le transfert s’exécute en ligne, la solution a été testée avec des charges de plusieurs téraoctets et chaque résultat est vérifié avant la fin de l’opération. Pour les opérateurs qui souhaitent contrôler le cheminement des données depuis le shell, ce script enveloppe Bash sous licence MIT copie des lots de taille limitée via une zone de transit locale, vérifie les deux étapes octet par octet et ne supprime jamais les fichiers sources.
Pourquoi intégrer rclone plutôt que recréer le client de chaque fournisseur
rclone fournit à un workflow shell une abstraction mature des fournisseurs, la configuration OAuth, la pagination, la gestion des nouvelles tentatives, la reprise des transferts, le contrôle de la concurrence ainsi que des commandes d’inventaire et de vérification. Le script enveloppe peut ainsi se concentrer sur les invariants de la migration : commandes de copie uniquement, zone de transit limitée, réserves de capacité, listes de fichiers déterministes et progression persistante.
Cela ne rend pas l’opération automatique. L’opérateur reste responsable de la configuration des espaces distants, de la sécurité des jetons, de la disponibilité du réseau, de la supervision des processus, du disque local, des journaux, des limites des fournisseurs, de l’examen des objets en échec et de la validation de la destination. FileArk s’adresse aux utilisateurs qui préfèrent que cette procédure soit exécutée sous la forme d’un workflow en ligne géré plutôt que sur leur poste de travail ou leur serveur.
Le script n’appelle explicitement jamais rclone move, sync, delete, purge ou rmdirs. Il utilise lsf et about pour la découverte, copy pour chaque étape et check --download pour la vérification intégrale des octets. La seule suppression concerne un fichier vérifié dans le répertoire de transit local.
Télécharger l’édition Bash et la licence MIT
Télécharger le programme de transfert Bash et rclone
Un script enveloppe limité à la copie, avec limites de lots, réserves locales et à destination, vérification intégrale des octets, points de contrôle, réglages des nouvelles tentatives et démonstration sans connexion réseau.fileark-cloud-transfer.sh · Bash 4+ · rclone · jq · licence MIT
Télécharger la licence MIT
Avis d’autorisation couvrant les deux scripts de transfert manuel de FileArk.LICENSE-fileark-cloud-transfer.txt · MIT · texte brut
Exécuter la démonstration opérateur sans accès réseau

La démonstration peut être exécutée en toute sécurité avant l’installation de rclone ou de jq, car l’analyse des arguments se termine avant la vérification des dépendances. La sortie nomme les opérations destructrices interdites, affiche les deux réserves de capacité et se termine par le nombre de suppressions à la source.
chmod +x fileark-cloud-transfer.sh
bash -n fileark-cloud-transfer.sh
./fileark-cloud-transfer.sh --demo
./fileark-cloud-transfer.sh --helpInstaller et configurer les dépendances nécessaires à l’opérateur
Installez une version récente de rclone en suivant ses instructions officielles, puis installez jq à partir du gestionnaire de paquets de votre système d’exploitation. Bash 4 ou une version ultérieure est requis, car le script d’encapsulation utilise une gestion stricte des erreurs et des expressions conditionnelles modernes.
Exécutez rclone config et créez deux espaces distants portant des noms distincts, par exemple onedrive: et gdrive:. Saisissez votre propre ID client et votre propre secret auprès du fournisseur lorsque les règles ou les limites de débit nécessitent des applications OAuth dédiées. rclone stocke les jetons OAuth dans son fichier de configuration : protégez ce fichier avec des autorisations restrictives et ne le distribuez jamais avec le script.
Validez chaque espace distant avec une commande de listage en lecture seule et une commande de quota avant d’exécuter le script enveloppe. Utilisez des chemins tels que onedrive:Department/Archive lorsque seul un sous-arbre est concerné.
rclone version
rclone config
rclone lsd onedrive:
rclone lsd gdrive:
rclone about onedrive: --json | jq
rclone about gdrive: --json | jqFiger un inventaire déterministe avant de transférer les octets
Le script enveloppe utilise rclone lsf de manière récursive, avec une tabulation comme séparateur explicite et le format sp, ce qui produit la taille suivie du chemin. Il vérifie que chaque taille est numérique et que chaque chemin est relatif, puis exclut les chemins déjà présents dans le point de contrôle vérifié.
L’édition Bash refuse les noms de fichiers contenant des tabulations, des retours chariot ou des sauts de ligne, car les listes --files-from-raw délimitées par des sauts de ligne ne peuvent pas les représenter sans ambiguïté. Utilisez l’édition Python ou un format d’inventaire conçu à cet effet lorsque de tels noms existent.
Un point de contrôle fondé sur les chemins est volontairement simple et vérifiable. Il suppose que les chemins sources restent stables pendant l’exécution. Si possible, bloquez les écritures sur la source ; sinon, régénérez et rapprochez l’inventaire si des modifications simultanées sont attendues.
rclone lsf "$SOURCE" \
--recursive \
--files-only \
--format "sp" \
--separator