Po. Čvc 15th, 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 cca 30 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 spravuji s dalšími kolegy 8000 serverů po celé Evropě a tato práce mě nesmírně baví, protože se vše musí automatizovat a nabízí mi to možnost trénovat další evropské jazyky od Angličtiny, přes Němčinu až po Italštinu.

Napsat komentář

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