Portál AbcLinuxu, 19. říjen 2017 20:36

Filtrujme čtivé texty z Projektu Gutenberg 2

30. 3. 2016 | Karel Kulhavý
Články - Filtrujme čtivé texty z Projektu Gutenberg 2  

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.

Související články

První díl seriálu.

Další články z této rubriky

Syncthing
Twibright Registrator: Instalace, odinstalace, test, základní použití
Twibright Registrator: fotografie v šeru bez stativu 2
Twibright Registrator: fotografie v šeru bez stativu 1
Filtrujeme čtivé texty z Projektu Gutenberg 9

Diskuse k tomuto článku

31.3.2016 11:45 Field
Rozbalit Rozbalit vše Proboha
Odpovědět | Sbalit | Link | Blokovat | Admin
Na kolik dílů se tohle dá natáhnout? To bude nejspíš nějaká variace na Ordinaci v růžové zahradě, ne?
kyknos avatar 5.4.2016 10:20 kyknos | skóre: 18 | blog: Quid novi? | Ranša Rosa
Rozbalit Rozbalit vše Re: Filtrujme čtivé texty z Projektu Gutenberg 2
Odpovědět | Sbalit | Link | Blokovat | Admin
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
So the Nationalists and the Socialists have the same policy on Brexit. They should get together and form a...
5.4.2016 16:17 Ovocníček
Rozbalit Rozbalit vše Re: Filtrujme čtivé texty z Projektu Gutenberg 2
Odpovědět | Sbalit | Link | Blokovat | Admin
Taková kacířská otázka, ale nebylo by přece jen lepší knížku postaru vytipovat předem a stáhnout ručně? Takhle koukám, že jim linuxák hračička sežere bw za celej archiv, aby to pak z většiny smazal?

To mi připomíná, že musím konečně dočíst Carmillu.

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.