Chcete-li obnovit přerušené kopírování, měli byste použít rsync --append
. Z vysvětlení --append
na stránce manuálu :
To způsobí, že nástroj rsync aktualizuje soubor připojením dat na konec souboru, cožpředpokládá, že data, která již existují na straně příjemce, jsou totožná se začátkem souboru na straně odesílatele. [...] Znamená
--inplace
, [...]
Možnost --inplace
dělá rsync
(pře)pište obsah cílového souboru přímo; bez --inplace
, rsync
by:
- vytvořte nový soubor s dočasným názvem,
- zkopírujte do něj aktualizovaný obsah,
- zaměňte jej za cílový soubor a nakonec
- smažte starou kopii cílového souboru.
Normální režim provozu hlavně zabraňuje konfliktům s aplikacemi, které by mohly mít otevřený cílový soubor, a několika dalším nehodám, které jsou řádně uvedeny v rsync
manuálová stránka.
Všimněte si, že pokud operace kopírování/aktualizace selže v krocích 1.-3. výše,rsync
odstraní dočasný cílový soubor; --partial
volba toto chování zakáže a rsync
ponechá částečně přenesené dočasné soubory na cílovém souborovém systému. Obnovení operace kopírování jednoho souboru tedy mnoho nezíská, pokud nezavoláte první rsync
s --partial
nebo--partial-dir
(stejný efekt jako --partial
, navíc instruuje rsync
vytvořit všechny dočasné soubory v určitém adresáři).
Uvědomte si, že --append
implikuje --inplace
, což samo o sobě implikuje --partial
.
-
Pouhým použitím
--partial
měli byste způsobitrsync
opustit částečné přenosy a obnovit je v následujících pokusech. -
Pomocí
--append
měli byste způsobitrsync
jak opustit částečné soubory a pokračovat v nich příště. Po převodursync
by měl ověřit pouze kontrolní součet přenášených dat. -
--append-verify
zahrnuje celý soubor do ověření kontrolního součtu, včetně jakékoli části přenesené v předchozím přenosu. -
Buď s
--append
nebo--append-verify
neúspěšné ověření kontrolního součtu by mělo způsobit úplné opětovné odeslání souboru (pomocí--inplace
)
Měli byste být schopni obnovit mv
nebo cp
operace s rsync
ale možná budete chtít použít --append-verify
možnost pro klid duše.
Všimněte si, že pomocí --append
způsobuje rsync
kopírovat pouze ty soubory, které mají na přijímači menší velikost než na odesílateli (bez ohledu na časová razítka), nebo v přijímači chybí. Podle dokumentace k této možnosti:
Pokud je třeba přenést soubor a jeho velikost na přijímači je stejná nebo delší než velikost na odesílateli, soubor se přeskočí.
Více informací v manuálové stránce
David Schwartz má pravdu, --partial
(nebo lépe -P
) dělá, co chceš. Ověřil jsem to na souboru 37G, který byl zastaven ~8g do něj, přes síť. rsync rychle naskenoval první části části (zobrazuje průběh tak, jak to šlo díky -P
) a poté pokračoval v přenosu na konec částečného souboru.