GNU/Linux >> Znalost Linux >  >> Linux

Obnovení přenosu jednoho souboru pomocí rsync

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:

  1. vytvořte nový soubor s dočasným názvem,
  2. zkopírujte do něj aktualizovaný obsah,
  3. zaměňte jej za cílový soubor a nakonec
  4. 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ůsobit rsync opustit částečné přenosy a obnovit je v následujících pokusech.

  • Pomocí --append měli byste způsobit rsync jak opustit částečné soubory a pokračovat v nich příště. Po převodu rsync 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.


Linux
  1. Protokoly přenosu souborů:FTP vs SFTP

  2. Chytřejší přenos souborů než Rsync?

  3. Zřetězit konkrétní soubory do jednoho jediného souboru?

  1. Co je File Transfer Protocol (FTP)

  2. Jak používat Netcat k přenosu souborů v systému Linux

  3. Otevření souboru .tar.gz jediným příkazem

  1. RSync:Jak mohu synchronizovat v obou směrech?

  2. Aktualizace jednoho souboru v komprimovaném taru

  3. Použití nc pro přenos velkých souborů