So. Pro 21st, 2024

Ještě do nedávna bych použil takovýto oneliner na gzipnutí hromady souborů v adresáři. Pokud to bylo pár souborů nebo se jednalo o menší soubory, tak proč ne, že?

for file in $(ls ./ ); do gzip -v $file ; done

Problém přichází s mnohasetgigovými soubory.
Nainstalujeme pigz (debian/ubuntu):

apt-get update -y && apt-get install pigz -y

Balíme multivláknově

Následující příkaz využije 16 vláken CPU:

for file in $(ls ./ ); do tar cf - $file | pigz -9 -p 16 > $file.tar.gz ; done

Pojďme z toho ale udělat univerzální oneliner pomocí nproc:

for file in $(ls ./ ); do tar cf - $file | pigz -9 -p nproc > $file.tar.gz ; done
#totéž za použití proměnné:
cpu=$(nproc) ; for file in $(ls ./ ); do tar cf - $file | pigz -9 -p $cpu > $file.tar.gz  ;  done

A musím uznat, že to balí velmi slušně. Z 61 GB image mi to udělalo 13 GB image.

zdroj

Avatar

By mirra

Hardwaru a počítačům se věnuji již od roku 2003. Za tu dobu jsem poskládal stovky počítačů, opravil tisíce počítačů a vyřešil nespočetně problémů, vad a chyb, se kterými se setkávali uživatelé. Od roku 2005 se zabývám servery, zejména těmi herními, v roce 2007 jsem se začal věnovat Valve Source SDK level designu, který šel od roku 2009 k ledu kvůli studiu Informatiky na univerzitě. Podílel jsem se chvíli i na provozu síťové laboratoře MENDELU, dnes spravuji v jedné osobě cca 100 serverů/diskových polí na univerzitě, řeším IT v malých a středních firmách tak, aby firmy ušetřily nemalé částky při zlepšení kvality a soustředím se na snižování nákladů na IT od licencí až po hardware, software, provádím konsolidace a audity platnosti licencí, které firmám šetří rovněž nemalé peníze. Z velkých firem jsem měl příležitost s dalšími kolegy řešit správu 8000 serverů po celé západní Evropě s vysokou mírou automatizace a poznávání nejrůznějších evropských pracovních mentalit. Dále jsem řešil hybridní cloud ve velké firmě, orientované na trhy střední a východní Evropy. Posledních několik let se věnuji Devops pro velké zákazníky v Azure cloudu, spravuji kubernetes (AKS), Gitlab.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *