Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Jeden archiv z výpisu programu find + zstd  (Přečteno 7306 krát)

80Sus

  • Návštěvník
  • Příspěvků: 21
Jeden archiv z výpisu programu find + zstd
« kdy: 22 Ledna 2022, 18:00:18 »
Zdravím,
určitě existuje jednoduché řešení, jenom se mi na něj zatím nepodařilo přijít.

Mám v adresíři sobory, které chci týdně zkomprimovat a zálohovat.
Myslel jsem, že to udělám pomocí týdeního příkazu v cronu:
Kód: [Vybrat]
find . -maxdepth 1 -type f -ctime +7 -exec zstd {} cesta.../archiv.zst +To mi ale vytvoří ve stejné složce archivy pro každý nalezený soubor zvlášť. A já chci všechny soubory v jednom archivu, v jiné složce.

Když jsem zkoušel příkaz trochu upravit parametrem -o, tak zstd sice vytvoří jeden archiv, ale po rozbalení jsou všechny soubory sloučené do jednoho, se stejným názvem jako archiv.
Kód: [Vybrat]
find . -maxdepth 1 -type f -ctime +7 -exec zstd -o cesta.../archiv.zst {} +
Takže dotaz zní, jde nějak upravit příkaz, aby nově přidané soubory se zazálohovaly do jednoho archivu bez nechtěného sloučení?


(pro info, zkusil jsem to i s tarem,
Kód: [Vybrat]
find . -maxdepth 1 -type f -ctime -7 -exec tar -czf cesta.../archiv.tar {} +a to funguje jak má, takže mám pocit, že je to čistě problém zstd. S ním ale dosáhnu lepší komprese)

juwa2

  • Závislák
  • ***
  • Příspěvků: 4935
Re:Jeden archiv z výpisu programu find + zstd
« Odpověď #1 kdy: 22 Ledna 2022, 19:01:29 »
Pokud chceš větší kompresi, použij
Kód: [Vybrat]
tar -cjf
Bude komprimovat do *.tar.bz2 (*.tbz) který používá větší kompresi.
Pokud přesto trváš na *.zst, nezbývá než si podrobně prostudovat manuál zstd. Nicméně i tak nechápu, jak se mohou ty soubory "sloučit" - to jako z deseti fotek máš jednu?... :o

80Sus

  • Návštěvník
  • Příspěvků: 21
Re:Jeden archiv z výpisu programu find + zstd
« Odpověď #2 kdy: 22 Ledna 2022, 19:53:39 »
To sloučení je spojení obsahu všech souborů do jednoho souboru.
Například když jeden soubor obsahuje text
Citace
zpráva 1
druhý soubor
Citace
zpráva 2
třetí soubor
Citace
zpráva 3

tak po kompresi a následovném rozbalení archivu, mám jeden soubor s obsahem:
Citace
zpráva 1
zpráva 2
zpráva 3

Ale dělá to jen v kombinaci s příkazem find.
Když použiju samotné zstd na všechny soubory se složce, vytvoří se archiv správně.
Škoda že tar neumí zstd kompresi.

Zkusím to porovnat s bz2, jak radíš, a kdyžtak přejdu na tuto možnost.

Kdybych našel řešení na původní problém, dám sem vědět.

JirkaZ

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 1748
  • Dlouholetý uživatel Linuxu a open source obecně.
Re:Jeden archiv z výpisu programu find + zstd
« Odpověď #3 kdy: 22 Ledna 2022, 21:55:52 »
rsync s kompresí by použít nešel?

80Sus

  • Návštěvník
  • Příspěvků: 21
Re:Jeden archiv z výpisu programu find + zstd
« Odpověď #4 kdy: 22 Ledna 2022, 23:55:34 »
Bohužel neznám rsync do hloubky a nevím, jestli umí porovnat data ze zdrojová složky, se soubory v archivech v cílovém adresáři a následně pak udělat po týdnu další zálohu nových souborů. Na to jsem pořád linux nováček :) ale ještě to vyzkouším.

V kostce mi jde o to, že:
- V adreáři "projekty" mám momentálně cca 500 souborů.
- V adresáři "backups" na druhém disku mám cca 10 archivů oněch pětiset souborů. Ty archivy jsem dělal ručně v určitém časovém rozestupu.
A chtěl bych to zautomatizovat, aby se mi po týdnu vždy nově přidané soubory zkomprimovaly a uložily ve složce "backups".
(Dále mám složku "backups" pro jistotu uploudovanou pomocí rclone na síťové úložiště, ale to už funguje tak jak má.) Jde mi jen o postup: najít nové soubory za poslená týden a vytvořit jejich archiv.
A to jsem právě myslel, že udělá find + zstd.

Zatím co jsem zkoušel, tak funguje ono find + komprese tar jak psal juwa2

juwa2

  • Závislák
  • ***
  • Příspěvků: 4935
Re:Jeden archiv z výpisu programu find + zstd
« Odpověď #5 kdy: 23 Ledna 2022, 10:32:50 »
Bohužel neznám rsync do hloubky a nevím, jestli umí porovnat data ze zdrojová složky, se soubory v archivech v cílovém adresáři a následně pak udělat po týdnu další zálohu nových souborů. Na to jsem pořád linux nováček :) ale ještě to vyzkouším.

Použij rsync incremental backup. Abys to nemusel vymýšlet od základu, využij tento script
https://github.com/pedroetb/rsync-incremental-backup
(použij backup-local)

JirkaZ

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 1748
  • Dlouholetý uživatel Linuxu a open source obecně.
Re:Jeden archiv z výpisu programu find + zstd
« Odpověď #6 kdy: 23 Ledna 2022, 12:42:59 »
Právě inkrementální rsync (s archivací) jsem myslel.

Vyzkoušet se dá třeba i v GUI luckyBackup (i když teď nevím, zda tamní implementace rsync podporuje archivaci ve smyslu zipování apod.). Případně Grsync atd. apod., je toho víc.

 

Provoz zaštiťuje spolek OpenAlt.