Bash + rclone · OneDrive ↔ Google Drive · Open source provozní příručka
Cloudový přenos v Bashi s rclone určený pouze ke kopírování
rclone již podporuje stránkování v cloudu, opakování pokusů, obnovitelné přenosy a kontrolní součty poskytovatelů. Technickým úkolem je tyto základní funkce zapojit do provozního postupu, který při chybě bezpečně skončí a zohledňuje dostupnou kapacitu.
Aktualizováno ; 20 min čtení.
Stručná odpověď
FileArk je jednodušší spravovanou volbou pro rozsáhlé migrace nebo migrace bez obsluhy: přenos provádí online, byl otestován se zátěží v řádu několika terabajtů a před dokončením kontroluje každý výsledek. Pro provozovatele, kteří chtějí datový tok řídit shellem, tento obálkový skript v Bashi s licencí MIT kopíruje omezené dávky přes místní pracovní oblast, ověřuje obě části přenosu bajt po bajtu a nikdy neodstraňuje zdrojové soubory.
Proč vytvořit obálkový skript pro rclone namísto nových klientů pro každého poskytovatele
rclone poskytuje shellovému pracovnímu postupu vyspělou abstrakci poskytovatelů, konfiguraci OAuth, stránkování, opakování pokusů, obnovitelné přenosy, řízení souběžnosti a příkazy pro inventář i ověřování. Obálkový skript se proto může soustředit na neměnné zásady migrace: výhradně kopírovací příkazy, omezenou pracovní oblast, kapacitní rezervy, deterministické seznamy souborů a trvalé zaznamenávání průběhu.
To však neznamená, že je úloha automatická. Provozovatel stále odpovídá za konfiguraci vzdálených úložišť, zabezpečení tokenů, dostupnost sítě, dohled nad procesem, místní disk, protokoly, limity poskytovatelů, kontrolu neúspěšných objektů a schválení cíle. FileArk je určen uživatelům, kteří chtějí tento postup provozovat jako spravovaný online pracovní proces, a ne na své pracovní stanici či serveru.
Skript výslovně nikdy nespouští rclone move, sync, delete, purge ani rmdirs. Pro zjišťování používá lsf a about, pro každou část přenosu copy a k úplnému ověření všech bajtů check --download. Odstraní pouze ověřený soubor z místní pracovní oblasti.
Stáhněte si verzi v Bashi a licenci MIT
Stáhnout přenosový program v Bashi s rclone
Obálkový skript určený pouze ke kopírování s limity dávek, rezervami v místním i cílovém úložišti, úplným ověřením všech bajtů, kontrolními body, řízením opakovaných pokusů a ukázkou bez připojení k síti.fileark-cloud-transfer.sh · Bash 4+ · rclone · jq · licence MIT
Stáhnout licenci MIT
Licenční ujednání vztahující se na oba skripty FileArk pro ruční přenos.LICENSE-fileark-cloud-transfer.txt · MIT · prostý text
Spusťte ukázku pro správce bez připojení k síti

Ukázku lze bezpečně spustit ještě před instalací nástrojů rclone nebo jq, protože zpracování argumentů skončí dříve, než se zkontrolují závislosti. Výstup uvádí názvy zakázaných destruktivních operací, zobrazuje obě kapacitní rezervy a končí počtem odstranění ze zdroje.
chmod +x fileark-cloud-transfer.sh
bash -n fileark-cloud-transfer.sh
./fileark-cloud-transfer.sh --demo
./fileark-cloud-transfer.sh --helpNainstalujte a nakonfigurujte závislosti pro správce
Podle oficiálních pokynů nainstalujte aktuální verzi rclone a nástroj jq nainstalujte pomocí správce balíčků svého operačního systému. Je vyžadován Bash 4 nebo novější, protože obalový skript používá striktní zpracování chyb a moderní podmíněné výrazy.
Spusťte rclone config a vytvořte dvě nezávisle pojmenovaná vzdálená úložiště, například onedrive: a gdrive:. Pokud zásady nebo omezení přenosové rychlosti vyžadují samostatné aplikace OAuth, zadejte vlastní ID klienta a tajný klíč od poskytovatele. rclone ukládá tokeny OAuth do svého konfiguračního souboru. Chraňte jej omezujícími oprávněními a nikdy jej nepřibalujte ke skriptu.
Před spuštěním obálkového skriptu ověřte každé vzdálené úložiště pomocí výpisu pouze pro čtení a příkazu pro kvótu. Pokud se má zpracovat pouze podstrom, použijte cesty jako onedrive:Department/Archive.
rclone version
rclone config
rclone lsd onedrive:
rclone lsd gdrive:
rclone about onedrive: --json | jq
rclone about gdrive: --json | jqPřed přenosem bajtů zmrazte deterministický inventář
Obálkový skript používá rekurzivní příkaz rclone lsf s explicitně nastaveným tabulátorem jako oddělovačem a formátem sp, čímž vytvoří velikost následovanou cestou. Ověří, že každá velikost je číselná a každá cesta relativní, a poté vyloučí cesty, které již jsou v ověřeném kontrolním bodu.
Verze v Bashi odmítá názvy souborů obsahující tabulátory, návraty vozíku nebo konce řádků, protože seznamy --files-from-raw oddělené konci řádků je nedokážou jednoznačně reprezentovat. Pokud se takové názvy vyskytují, použijte verzi v Pythonu nebo formát inventáře navržený pro tento účel.
Kontrolní bod založený na cestách je záměrně jednoduchý a snadno kontrolovatelný. Předpokládá, že zdrojové cesty zůstanou během běhu stabilní. Pokud je to možné, pozastavte zápisy do zdroje. Očekáváte-li souběžné změny, inventář znovu vygenerujte a porovnejte.
rclone lsf "$SOURCE" \
--recursive \
--files-only \
--format "sp" \
--separator