Bash + rclone · OneDrive ↔ Google Drive · Open-source beheerhandleiding
Een cloudoverdracht die uitsluitend kopieert met Bash en rclone
rclone ondersteunt al paginering in de cloud, nieuwe pogingen, hervatbare overdrachten en providerhashes. De technische opgave is om deze basisfuncties te verpakken in een capaciteitsbewuste werkwijze die bij fouten veilig afbreekt.
Bijgewerkt ; 20 minuten leestijd.
Kort antwoord
FileArk is de eenvoudigere beheerde keuze voor grote of onbeheerde migraties: het voert de overdracht online uit, is getest met workloads van meerdere terabytes en controleert elk resultaat voordat de overdracht wordt voltooid. Voor beheerders die het gegevenspad vanuit de shell willen aansturen, kopieert deze Bash-wrapper met MIT-licentie begrensde batches via lokale tijdelijke opslag, verifieert hij beide trajecten byte voor byte en verwijdert hij nooit bronbestanden.
Waarom rclone in een wrapper gebruiken in plaats van elke providerclient opnieuw te bouwen
rclone biedt een shellworkflow een volwassen providerabstractie, OAuth-configuratie, paginering, gedrag bij nieuwe pogingen, hervatbare overdrachten, instellingen voor gelijktijdigheid, inventarisatieopdrachten en verificatieopdrachten. De wrapper kan zich daardoor richten op de vaste regels voor de migratie: uitsluitend kopieeropdrachten, begrensde tijdelijke opslag, capaciteitsreserves, deterministische bestandslijsten en duurzaam vastgelegde voortgang.
Dat maakt de taak niet automatisch. De beheerder blijft verantwoordelijk voor de configuratie van remotes, tokenbeveiliging, netwerkbeschikbaarheid, procesbewaking, lokale schijfruimte, logboeken, providerlimieten, controle van mislukte objecten en acceptatie van de bestemming. FileArk is bedoeld voor gebruikers die deze procedure als een beheerde online workflow willen laten uitvoeren in plaats van op hun werkstation of server.
Het script roept rclone move, sync, delete, purge of rmdirs expliciet nooit aan. Het gebruikt lsf en about voor detectie, copy voor elk traject en check --download voor volledige byte-voor-byteverificatie. Alleen een geverifieerd bestand in de lokale tijdelijke opslag wordt verwijderd.
Download de Bash-versie en MIT-licentie
Download het overdrachtsprogramma voor Bash en rclone
Een wrapper die uitsluitend kopieert, met batchlimieten, lokale en doelreserves, volledige byte-voor-byteverificatie, checkpoints, instellingen voor nieuwe pogingen en een demo zonder netwerkverbinding.fileark-cloud-transfer.sh · Bash 4+ · rclone · jq · MIT-licentie
Download de MIT-licentie
Licentietekst voor beide scripts van FileArk voor handmatige overdracht.LICENSE-fileark-cloud-transfer.txt · MIT · platte tekst
Voer de beheerdersdemo zonder netwerkverbinding uit

De demo kan veilig worden uitgevoerd voordat rclone of jq is geïnstalleerd, omdat de argumentverwerking wordt afgesloten voordat afhankelijkheden worden gecontroleerd. De uitvoer noemt de verboden destructieve bewerkingen, toont beide capaciteitsreserves en eindigt met het aantal verwijderingen uit de bron.
chmod +x fileark-cloud-transfer.sh
bash -n fileark-cloud-transfer.sh
./fileark-cloud-transfer.sh --demo
./fileark-cloud-transfer.sh --helpInstalleer en configureer de vereiste beheerderssoftware
Installeer een actuele versie van rclone volgens de officiële instructies en installeer jq via de pakketbeheerder van uw besturingssysteem. Bash 4 of nieuwer is vereist, omdat het wrapperscript strikte foutafhandeling en moderne voorwaardelijke expressies gebruikt.
Voer rclone config uit en maak twee onafhankelijk benoemde remotes, bijvoorbeeld onedrive: en gdrive:. Voer je eigen client-ID en clientgeheim van de provider in wanneer het beleid of de snelheidslimieten afzonderlijke OAuth-applicaties vereisen. rclone slaat OAuth-tokens op in het configuratiebestand. Beveilig dat bestand met beperkende machtigingen en voeg het nooit bij het script.
Controleer elke remote met een alleen-lezen-lijst en een quotaopdracht voordat je de wrapper uitvoert. Gebruik paden zoals onedrive:Department/Archive als slechts een deelstructuur binnen het bereik valt.
rclone version
rclone config
rclone lsd onedrive:
rclone lsd gdrive:
rclone about onedrive: --json | jq
rclone about gdrive: --json | jqLeg een deterministische inventaris vast voordat je bytes verplaatst
De wrapper gebruikt rclone lsf recursief met een expliciete tab als scheidingsteken en de indeling sp. Dit levert de grootte op, gevolgd door het pad. De wrapper controleert of elke grootte numeriek en elk pad relatief is en sluit vervolgens paden uit die al in het geverifieerde checkpoint staan.
De Bash-versie weigert bestandsnamen met tabs, regelteruglopen of regeleinden, omdat door regeleinden gescheiden --files-from-raw-lijsten deze niet eenduidig kunnen weergeven. Gebruik de Python-versie of een speciaal hiervoor ontworpen inventarisindeling als zulke namen voorkomen.
Een checkpoint op basis van paden is bewust eenvoudig en controleerbaar. Hierbij wordt ervan uitgegaan dat bronpaden tijdens de uitvoering niet veranderen. Blokkeer indien mogelijk schrijfbewerkingen naar de bron, of maak de inventaris opnieuw en stem deze af als gelijktijdige wijzigingen worden verwacht.
rclone lsf "$SOURCE" \
--recursive \
--files-only \
--format "sp" \
--separator