Portál AbcLinuxu, 5. května 2025 11:56
V minulém díle jsme se dostali až k první půlce komplexních přepínačů příkazu rsync, který slouží ke stažení textových souborů projektu Gutenberg na náš disk. Postoupíme k dalším přepínačům…
--delete
maže soubory, které byly mezitím smazány na zdroji, což v našem případě snad ani není důležité, a --min-size=1
se vyhne prázdným souborům. --max-size
10 megabajtů je tam kvůli perlám jako kompletní výpis genetického kódu člověka. Samozřejmě v ASCII, aby byl ještě 4x větší než ve skutečnosti. A ve více verzích. Tím si nějaký ten gigabajt ušetříme. No a na závěr je URL, které snad nemusím vysvětlovat. Nicméně mohu vysvětlit, proč rsync a ne třeba wget – wget si Projekt Gutenberg výslovně nepřeje, protože by přetěžoval jeho systém, a místo toho doporučuje rsync.
Na stránku A4 se vejde asi 2000 znaků, 10 megabajtů pak odpovídá pěti tisícům stránek. Do toho by se měl vejít i voluminózní román – nebo Bible. Co by se tam ale nemuselo vejít, je buddhistický ekvivalent Bible, Pálijský kánon:
Pálijský kánon.
Zdroj: DhJ~commonswiki z Wikimedia Commons pod licencí CC-BY-SA.
Pokud se rsync přeruší, typicky z důvodu pádu některého z defektních embedded zařízení, na kterých je dnešní spotřební Internet dle mého názoru vystavěn, je možné ho prostě znova pustit. On si ty přenesené soubory už sám přeskočí. Toto je ostatně samotná hlavní myšlenka rsyncu: na rozdíl od scp nepřenáší již jednou přenesené.
Toto přeskakování stažených souborů může trvat delší dobu a být spojeno s výpisem většího množství informativních hlášek. Při jiném použití rsyncu ale může naopak probíhat velmi rychle a bez hlášek. Odvíjí se to od odlišné situace dané nastavením přepínačů, které zřejmě umožní rsyncu někdy provést urychlující optimalizace a někdy ne. Srovnatelně komplexní rsync příkaz používám například na projektu optického pojítka Ronja, kde velikost synchronizovaného adresáře je 6,7 GB a při malé změně proběhne synchronizace rsyncem velmi rychle.
Původní příkaz rsync, ke kterému Projekt Gutenberg nabádá nedoporučím, protože stahuje všechno možné, audio nahrávky, multimediální data, strojově generované sekundární soubory. Na uvedené stránce píšou, že těch souborů jsou pak 2 milióny. Mirrorování pak trvá neúměrně dlouho:
rsync -av --del ftp@ftp.ibiblio.org::gutenberg /var/www/gutenberg
Zde si jako cvičení z Unixu, která jsme na Matfyzu mívali, uvedeme pár příkladů, jak se na stažený archív podívat.
du -sm pg
Vypíše spotřebu místa na disku v megabajtech. Není to jen součet velikostí souborů, ale započítávají se i části bloků souborového systému, které zůstaly souborem nevyužité.
find pg -type f -ls | tee filelist.txt
Vypíše všechny soubory, ale ne adresáře, ve formátu, který obsahuje kromě jména souboru i délku souboru a další informace, a současně tento výpis ukládá do souboru
filelist.txt
. Příkaz find bez explicitního zadání akce (-ls) vypisuje pouze cesty k souborům, ale ne jejich délku. K tomu je tam pevně zabudován -ls který má pevný formát výpisu. Vzhledem k tomu, že výpis souborů trvá dlouho (asi 55 tisíc souborů), tento výpis se pak hodí když se chceme podívat, co je v nejdelších souborech. Obsah souboru
filelist.txt
si ukážeme v příštím díle a budeme pokračovat dalšími příkazy pro inspekci obsahu projektu Gutenberg.
kompletní výpis genetického kódu člověka. Samozřejmě v ASCII, aby byl ještě 4x větší než ve skutečnosti.kdyby sis to přečetl, tak bys zjistil, že by ti dva bity opravdu nestačily
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.