Musím se zeptat na podobnou otázku.
Ve scénářích, kdy zálohujete adresář pomocí tar
a
-
přidávají se nové soubory/adresáře
-
aktuální soubory/adresáře se upravují a smazáno
můžete očekávat bezpečný výsledek?
Podle bezpečného výsledku Myslím něco jako:
tar
nepokazí něco na zdrojovém adresáři/subdirstar
přidá do archivu tak, jak byl nalezen v okamžiku vytvoření archivu- signál o úspěchu bude vysílán, i když dojde k popsaným změnám
Přijatá odpověď:
1. tar nepokazí něco na zdrojovém adresáři/subdirs
Pravda, pokud nepočítáte přístupové doby aktualizace jako zpackané. Kromě toho tar nemění nic ve zdrojovém stromu.
2. tar přidá do archivu tak, jak byl nalezen v okamžiku archivace budovy
Pravda, pro určitou hodnotu „v okamžiku“. Pokud se zdrojový strom změní, když jej tar čte, obsah archivu je poněkud nepředvídatelný. Zejména pokud se soubor změní, když jej tar čte, neexistuje žádná záruka, že tar zapíše kopii souboru tak, jak byla v určitém okamžiku. Například je možné mít:
- tar čte bajty 0–4095 z
foo
. - Některý program zapisuje do
foo
, změna bajtů 4095–4096 v jediné operaci zápisu. - tar čte bajty 4096–8191 z
foo
.
Potom obsah foo
v archivu není ani starý obsah, ani nový obsah, je to směs obou. Dalším příkladem je, že pokud je soubor přejmenován, zatímco tar čte zdrojový strom, tar jej může úplně přeskočit.
3. signál úspěchu bude vyslán i v případě, že došlo k popsaným změnám
Ne, ne nutně. Pokud tar zjistí, že se zdroj během čtení změnil, může si stěžovat a vrátit stav selhání. Zejména tar potřebuje zapsat velikost souboru do archivu, než zapíše obsah, takže nejprve načte velikost každého zdrojového souboru. Pokud dosáhne konce souboru před dosažením zaznamenané velikosti, neexistuje žádný zřejmý způsob, jak se obnovit, takže jakákoli implementace tar by si měla stěžovat alespoň v tomto případě.
Chcete-li zálohovat bezpečně, použijte nástroje na úrovni souborového systému nebo svazku k vytvoření snímku a zálohování snímku.
Související:Linux – virtualbox KALI host na hostiteli Ubuntu automaticky neupravuje rozlišení?