abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

včera 19:33 | Zajímavý článek Marek Stopka | Komentářů: 14
včera 17:55 | Nová verze

Bylo oznámeno vydání nové verze 3.0.0 a krátce na to opravných verzí 3.0.1 a 3.0.2 nástroje mitmproxy určeného pro vytváření interaktivních MITM proxy pro HTTP a HTTPS komunikaci. Přehled novinek v příspěvku na blogu. Přispělo 56 vývojářů. Aktualizována byla také dokumentace [Hacker News].

Ladislav Hagara | Komentářů: 0
včera 01:11 | Nová verze

Byla vydána nová major verze 3.0 svobodného multiplatformního geografického informačního systému QGIS (Wikipedie). Její kódové jméno je Girona, dle názvu města, ve kterém proběhlo 15. setkání vývojářů QGISu. Přehled novinek i s náhledy a animacemi v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
23.2. 20:33 | Zajímavý článek

Nadace Raspberry Pi vydala sedmašedesáté číslo (pdf) anglicky psaného časopisu MagPi věnovanému Raspberry Pi a projektům postaveným na tomto jednodeskovém počítači a čtvrté číslo (pdf) časopisu pro kutily HackSpace věnovanému navíc 3D tisku, pájení, řezání nebo i elektronice a IoT.

Ladislav Hagara | Komentářů: 0
23.2. 18:33 | Komunita

Morevna Project, který stojí za řadou svobodného softwaru pro animátory (např. Synfig Studio, RenderChan nebo Papagayo-NG) a svobodnými (CC-BY-SA) animovanými filmy/komiksy Morevna (3. díl) a Pepper&Carrot: The Potion Contest (6. díl), sbírá do 1. března příspěvky na 4. díl svého animovaného filmu Morevna. Mezi odměnami přispěvatelům lze najít např. i videokurzy animace v Synfigu či Blenderu.

xHire | Komentářů: 0
23.2. 12:22 | Bezpečnostní upozornění

Ve středu vydaná "npm@next" verze 5.7.0 správce balíčků pro JavaScript npm (Wikipedie, Node Package Manager) přinesla řadě uživatelů Linuxu nečekanou nepříjemnost. V závislosti na způsobu instalace a ve spojení s příkazem sudo mohlo dojít ke změně vlastníka u systémových souborů, také například /. Chyba je opravena v před několika hodinami vydané verzi npm 5.7.1 [reddit].

Ladislav Hagara | Komentářů: 14
23.2. 10:00 | Nová verze

Byla vydána verze 10.5 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab (Wikipedie). Představení nových vlastností v příspěvku na blogu. Zdůraznit lze integrovanou podporu Let's Encrypt.

Ladislav Hagara | Komentářů: 0
22.2. 12:33 | Komunita

Příspěvek na blogu Signalu (Wikipedie) informuje o založení neziskové nadace Signal Foundation, jež bude zastřešovat další vývoj tohoto svobodného bezpečného komunikátoru běžícího také na Linuxu (Signal Desktop). Brian Acton, spoluzakladatel WhatsAppu, věnoval nadaci 50 milionů dolarů [Hacker News].

Ladislav Hagara | Komentářů: 1
22.2. 05:55 | Zajímavý článek

Článek na Fedora Magazine krátce představuje programovací jazyk Rust a několik zajímavých v Rustu naprogramovaných terminálových aplikací. Jedná se o alternativu k příkazu grep ripgrep, moderní barevnou alternativu k příkazu ls exa, příkazem cloc inspirovaný tokei a zvířátko v terminálu ternimal.

Ladislav Hagara | Komentářů: 0
21.2. 23:55 | Zajímavý projekt

Byl spuštěn Humble Classics Return Bundle. Za vlastní cenu lze koupit hry Broken Sword 5 - The Serpent's Curse, Shadowrun Returns a Shadowrun: Dragonfall - Director's Cut. Při nadprůměrné platbě (aktuálně 8,48 $) také Shadowrun: Hong Kong - Extended Edition, Wasteland 2: Director's Cut - Standard Edition, Age of Wonders III a Xenonauts. Při platbě 15 $ a více lze získat navíc Torment: Tides of Numenera a Dreamfall Chapters: The Final Cut Edition.

Ladislav Hagara | Komentářů: 0
Který webový vyhledávač používáte nejčastěji?
 (2%)
 (27%)
 (62%)
 (2%)
 (3%)
 (0%)
 (1%)
 (1%)
Celkem 456 hlasů
 Komentářů: 35, poslední 21.2. 19:51
    Rozcestník

    Dotaz: Jak je možné zjistit velikost výstupní roury?

    Aleš Janda avatar 14.6.2017 10:53 Aleš Janda | skóre: 21 | blog: kýblův blog | Kralupy nad Vltavou
    Jak je možné zjistit velikost výstupní roury?
    Přečteno: 379×
    Mám tento příkaz:

    pv /dev/zero > /dev/sdaX

    Program "pv" vezme obsah souboru /dev/zero, kopíruje ho na výstup a do toho ukazuje průběh. Pokud je vstup nějak omezen (např. je to normální soubor), ukáže kolik toho má v procentech, zbývající čas atd. Pokud neví (např. vstupem je roura), ukazuje jen kolik přenesl dat. Zařízení /dev/sdaX je pak normální fyzický disk, který má nějakou velikost.

    Ve výše zmíněném případě má k dispozici pv jen zařízení /dev/zero, které je nekonečné, a zapisuje na svůj standardní výstup, který by měl být (pro něj) také nekonečný.

    Tak to ale není! Ve skutečnost pv (správně) zobrazil průběh tak, že počítá s celkovou velikostí /dev/sdaX! Jak je to možné? To přesměrování do zařízení přece zařídil bash, ne? Jak se pv dozví velikost něčeho, co je schované za rourou?

    Díky :-)

    Řešení dotazu:


    Odpovědi

    Josef Kufner avatar 14.6.2017 11:02 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: Jak je možné zjistit velikost výstupní roury?
    Jednoduše. Nijak se to nedozví.

    Dokonce i kdyby zapisoval do souboru a ne do roury, tak nebude vědět, neboť soubory při zápisu nemají explicitně omezenou velikost. Může si bokem zjistit, jak je na tom filesystém, kam se ukládá, ale ani to není jisté, navíc se situace může snadno změnit během zápisu. Ani pokud se zapisuje přímo na blokové zařízení, tak není jisté, že se jeho velikost nezmění – např. pokud by to byl LVM oddíl a někdo do něj přidal disk; ten program může jen hádat, zda na druhé straně souboru je fyzické zařízení.

    Nejlepší a asi i jediné, co můžeš udělat, je explicitně říct pv, jak je cíl/zdroj velký:
    pv -s `blockdev --getsize64 /dev/sdaX` /dev/zero > /dev/sdaX
    Hello world ! Segmentation fault (core dumped)
    Aleš Janda avatar 14.6.2017 11:14 Aleš Janda | skóre: 21 | blog: kýblův blog | Kralupy nad Vltavou
    Rozbalit Rozbalit vše Re: Jak je možné zjistit velikost výstupní roury?
    Právě že se to nějak dozví:
    # pv /dev/zero > /dev/sdc
     644MiB 0:00:12 [4,37MiB/s] [>                      ]  1% ETA 0:18:25
    (všimněte si toho odhadu času, procent apod.)

    Když dám mezi pv a zařízení ještě třeba gzip, tak už tam žádný odhad není.
    Josef Kufner avatar 14.6.2017 11:18 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: Jak je možné zjistit velikost výstupní roury?
    Hm, koukám, že jsem si to pěkně blbě přečetl.
    Hello world ! Segmentation fault (core dumped)
    14.6.2017 11:05 Aleš Kapica | skóre: 47 | blog: kenyho_stesky | Ostrava
    Rozbalit Rozbalit vše Re: Jak je možné zjistit velikost výstupní roury?
    No, vzhledem k tomu že zařízení /dev/sdaX existuje a z pohledu linuxu má předem známou velikost, je vcelku logické že ti projede přes PV jen tolik dat, kolik se ně vejde.

    Nekonečně můžeš jet podle mě leda když necháš pv jet z /dev/zero do /dev/null
    14.6.2017 11:08 NN
    Rozbalit Rozbalit vše Re: Jak je možné zjistit velikost výstupní roury?
    Mas to v manualu:
    Zeroing a disk:

    pv < /dev/zero > /dev/sda

    Note that if the input size cannot be calculated, and the output is a block device, then the size of the block device will be used and pv will automatically stop at that size as if -S had been given.
    Aleš Janda avatar 14.6.2017 11:22 Aleš Janda | skóre: 21 | blog: kýblův blog | Kralupy nad Vltavou
    Rozbalit Rozbalit vše Re: Jak je možné zjistit velikost výstupní roury?
    No jo, to je přesně ten případ, o kterém píšu. Jak je to ale možné? Jak může pv zjistit „size of the block device“ když je to pro něj jen výstupní roura? (Skutečně je to jen roura, když se podívám htopem na spuštěný příkaz, je tam přesně ten příkaz, co jsem zadal, tedy „pv /dev/zero“.)

    V tom manuálu je to ještě okořeněné o to, že zjevně umí zjistit i velikost vstupu. A opravdu – když zadám
    pv < soubor | další příkazy…
    pv se nějak domákne velikost toho vstupního souboru. Když zadám
    cat soubor | pv | další příkazy…
    už tu velikost nezjistí. V čem je ten rozdíl? Lze nějak zjistit typ roury, co za ní „sedí“?
    Josef Kufner avatar 14.6.2017 11:36 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: Jak je možné zjistit velikost výstupní roury?
    Trik je v tom, že > není roura, ale přesměrování. Když uděláš pv > soubor, tak shell otevře soubor a tím na něj získá file descriptor. Když pak shell spustí pv, tak mu tenhle file descriptor předá (spolu s stdin/err, co vedou na terminál), takže ve výsledku je situace stejná, jako by si pv ten soubor otevřelo samo. Pak už stačí zavolat nějaké to ioctl a zjistit, co je potřeba.

    Pokud se použije |, tak shell vyrobí nepojmenovanou rouru, čímž získá dva file descriptory – jeden na začátek a druhý na konec. Stejným způsobem pak jednotlivé file descriptory předá odpovídajícím programům. Takže když pak pv chce použít ioctl jako předtím, tak je za file descriptorem roura a ne blokové zařízení.
    Hello world ! Segmentation fault (core dumped)
    Aleš Janda avatar 14.6.2017 11:43 Aleš Janda | skóre: 21 | blog: kýblův blog | Kralupy nad Vltavou
    Rozbalit Rozbalit vše Re: Jak je možné zjistit velikost výstupní roury?
    Jo aha, ioctl se vlastně volá přímo na file descriptor! Čili i z „roury“ lze poznat, jestli to je roura nebo soubor. Že mě to hned nenapadlo. To je ono, díky :-)
    27.6.2017 06:56 mimi.vx | skóre: 37 | blog: Mimi.VX | Praha
    Rozbalit Rozbalit vše Re: Jak je možné zjistit velikost výstupní roury?

    stale si pletes dva pojmy ... roura (|) a presmerovani (> , >> , < , <<) .. U roury to fakt neni jak zjistit

    USE="-gnome -kde";turris
    26.6.2017 21:10
    Rozbalit Rozbalit vše Re: Jak je možné zjistit velikost výstupní roury?
    skrytý komentář Náš administrátor shledal tento komentář závadným.

    trolling

    Zobrazit komentář

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.