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 05:00 | Nová verze

    Byla vydána beta verze Linux Mintu 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.

    Ladislav Hagara | Komentářů: 2
    včera 01:55 | Nová verze

    GNU Project Debugger aneb GDB byl vydán ve verzi 17.1. Podrobný přehled novinek v souboru NEWS.

    Ladislav Hagara | Komentářů: 0
    19.12. 17:22 | IT novinky

    Josef Průša oznámil zveřejnění kompletních CAD souborů rámů tiskáren Prusa CORE One a CORE One L. Nejsou vydány pod obecnou veřejnou licenci GNU ani Creative Commons ale pod novou licencí OCL neboli Open Community License. Ta nepovoluje prodávat kompletní tiskárny či remixy založené na těchto zdrojích.

    Ladislav Hagara | Komentářů: 6
    19.12. 17:00 | Komunita

    Nový CEO Mozilla Corporation Anthony Enzor-DeMeo tento týden prohlásil, že by se Firefox měl vyvinout v moderní AI prohlížeč. Po bouřlivých diskusích na redditu ujistil, že v nastavení Firefoxu bude existovat volba pro zakázání všech AI funkcí.

    Ladislav Hagara | Komentářů: 0
    19.12. 10:11 | IT novinky

    V pořadí šestou knihou autora Martina Malého, která vychází v Edici CZ.NIC, správce české národní domény, je titul Kity, bity, neurony. Kniha s podtitulem Moderní technologie pro hobby elektroniku přináší ucelený pohled na svět současných technologií a jejich praktické využití v domácích elektronických projektech. Tento knižní průvodce je ideální pro každého, kdo se chce podívat na současné trendy v oblasti hobby elektroniky, od

    … více »
    Ladislav Hagara | Komentářů: 7
    19.12. 03:11 | Komunita

    Linux Foundation zveřejnila Výroční zprávu za rok 2025 (pdf). Příjmy Linux Foundation byly 311 miliónů dolarů. Výdaje 285 miliónů dolarů. Na podporu linuxového jádra (Linux Kernel Project) šlo 8,4 miliónu dolarů. Linux Foundation podporuje téměř 1 500 open source projektů.

    Ladislav Hagara | Komentářů: 0
    19.12. 02:11 | Zajímavý článek

    Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.12.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    19.12. 02:00 | Nová verze

    OpenZFS (Wikipedie), tj. implementace souborového systému ZFS pro Linux a FreeBSD, byl vydán ve verzi 2.4.0.

    Ladislav Hagara | Komentářů: 0
    19.12. 01:00 | IT novinky

    Kriminalisté z NCTEKK společně s českými i zahraničními kolegy objasnili mimořádně rozsáhlou trestnou činnost z oblasti kybernetické kriminality. V rámci operací OCTOPUS a CONNECT ukončili činnost čtyř call center na Ukrajině. V prvním případě se jednalo o podvodné investice, v případě druhém o podvodné telefonáty, při kterých se zločinci vydávali za policisty a pod legendou napadeného bankovního účtu okrádali své oběti o vysoké finanční částky.

    Ladislav Hagara | Komentářů: 9
    18.12. 14:44 | IT novinky

    Na lepší pokrytí mobilním signálem a dostupnější mobilní internet se mohou těšit cestující v Pendolinech, railjetech a InterPanterech Českých drah. Konsorcium firem ČD - Telematika a.s. a Kontron Transportation s.r.o. dokončilo instalaci 5G opakovačů mobilního signálu do jednotek Pendolino a InterPanter. Tento krok navazuje na zavedení této technologie v jednotkách Railjet z letošního jara.

    Ladislav Hagara | Komentářů: 7
    Kdo vám letos nadělí dárek?
     (26%)
     (2%)
     (13%)
     (2%)
     (2%)
     (2%)
     (11%)
     (24%)
     (17%)
    Celkem 46 hlasů
     Komentářů: 15, poslední dnes 09:50
    Rozcestník

    Busybox v roli http serveru

    10.3.2014 05:41 | Přečteno: 1554× | Počítače | poslední úprava: 9.3.2014 11:49

    Minulý týden jsem psal o tom, jak připojit k desce BeagleBone teploměr. Že to jde, jsem ukázal názorně na stránce http://beagle.bravenec.eu (nyní funguje už i přes IPv4).

    BeagleBone není zrovna výkonný stroj a i když by to šlo, instalovat kvůli jedné stránce php a apache je jako přiřezávat párátko motorovou pilou. Jak to tedy udělat a jaký webový server zvolit?

    Pro podobné jednoduché úlohy lze s úspěchem použít švýcarský nožík miniaturních linuxových distribucí: Busybox. Busybox je použitý jak v roli shellu pro běh potřebných skriptů, tak v roli webového serveru. Pro vyčítání, zpracování a zveřejnění naměřených hodnot si prakticky stoprocentně vystačíme jen s busyboxem.

    Vyčítání hodnot funguje jednoduše. Přečte se obsah potřebného souboru a vypreparuje a zformátuje se potřebná hodnota (programem awk) a v šabloně index.html se přepíšou řetězce XXX1 a XXX2 naměřenými hodnotami. Výsledek se uloží na ramdisk. Proč na ramdisk? Zůstaňte naladěni na tento kanál, článek o patáliích s SD kartami a o potřebnosti ramdisku už je napsaný a čeká na zveřejnění. Nejrychleji se o článku dozvíte, pokud začnete sledovat náš Twitter.

    #!/bin/busybox sh
    
    SED="busybox sed"
    AWK="busybox awk"
    SLEEP="busybox sleep"
    
    while true
        do
            XXX1=$($AWK -F "=" '$0 ~ /t=/ {printf("%1.1f\n",($2)/1000);}' \
                    < /sys/bus/w1/devices/28-0000027d912e/w1_slave )
    
            XXX2=$($AWK -F "=" '$0 ~ /t=/ {printf("%1.1f\n",($2)/1000);}' \
                    < /sys/bus/w1/devices/28-00000294d39a/w1_slave )
    
            $SED "s/XXX1/$XXX1/g; s/XXX2/$XXX2/g" \
                    < /root/teplomer/index.html \
                    > /dev/shm/teplomer/index.html
    
            $SLEEP 15
    
        done
    

    Ve svém BeagleBone mám nainstalovanou distribuci Gentoo - zde mám všechny potřebné utility (sed, awk, grep a sleep) v jejich plnokrevné verzi. Busybox obsahuje funkčnost všech těchto utilit. V menších systémech (routery, čtečky) bývá obvyklé, že busybox zde plní veškeré funkce a nic navíc nainstalováno není - na busybox vedou pouze linky pod názvem požadovaných programů. Abych zavolal utilitu vestavěnou v busyboxu, musím ve svém BeagleBone volat přímo busybox a prvním parametrem musí být název požadované utility. V systémech, kde je nainstalovaný pouze busybox a samostatné utility jako sed, awk a sleep nejsou, můžu volat busybox přímo názvem požadované utility.

    Vyčítání hodnot se startuje pomocí jednoduchého init skriptu /etc/init.d/teplomer:

    #!/sbin/runscript
    
    depend() {
        use logger
    }
    
    start() {
        ebegin "Starting teplomer"
        start-stop-daemon --start --quiet --pidfile /var/run/teplomer.pid \
            --background --make-pidfile --exec /root/teplomer/teplomer
        eend ${?}
    }
    
    stop() {
        ebegin "Stopping teplomer"
        start-stop-daemon --stop --quiet --pidfile /var/run/teplomer.pid
        eend ${?}
    }
    

    Busybox je natolik univerzální nástroj, že dokáže fungovat i jako jednoduchý webový server pro statický obsah. Nastavení a startování řeší opět jednoduchý init skript /etc/init.d/httpd-teplomer:

    #!/sbin/runscript
    
    depend() {
        use logger dns
    }
    
    start() {
        ebegin "Starting httpd-teplomer"
        mkdir -p /dev/shm/teplomer
        start-stop-daemon --start --quiet \
            --pidfile /var/run/httpd-teplomer.pid \
            --background --make-pidfile \
            --exec /bin/busybox -- httpd -f -p 80 -h /dev/shm/teplomer
        eend ${?}
    }
    
    stop() {
        ebegin "Stopping httpd-teplomer"
        start-stop-daemon --stop --quiet \
            --pidfile /var/run/httpd-teplomer.pid
        eend ${?}
    }
    

    Roli webového serveru zde plní řádek

    /bin/busybox --httpd -f -p 80 -h /dev/shm/teplomer
    

    V Gentoo musím ještě říci, aby se skripty startovaly při startu systému:

    rc-update add teplomer default
    rc-update add httpd-teplomer default
    

    A to je vše.

           

    Hodnocení: 100 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

    Josef Kufner avatar 10.3.2014 11:50 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Busybox v roli http serveru
    FYI, Busybox umí CGI, takže klidně můžeš pouštět PHP z Busyboxího httpd. A pokud ti PHP přijde moc velké, stejně můžeš spustit obyčejný shell script, kde bude akorát here document s tvým index.html a pár proměnných, takže nemusíš volat sed. K tomu bych ještě přidal Flot a rrdtool – z malého neschopného zařízení ti polezou krásné grafy.
    Hello world ! Segmentation fault (core dumped)
    10.3.2014 11:57 2014
    Rozbalit Rozbalit vše Re: Busybox v roli http serveru
    while true ; do nc -l -p 80 -c 'echo -e "HTTP/1.1 200 OK\n\n $(date)"'; done
    Petr Bravenec avatar 10.3.2014 12:25 Petr Bravenec | skóre: 43 | blog: Bravenec
    Rozbalit Rozbalit vše Re: Busybox v roli http serveru
    On ten sed a shell skript vyjde víceméně nastejno - takhle mám část zpracování (sed přepisující XXX hodnotami) a část obsahovou odděleně. Takhle je mi to trochu sympatičtější - přehlednější.

    Na grafy máme koupené highcharts, kolega s tím dělá hotové zázraky. Rddtool je zajímavé řešení, zkusím to kolegovi nenápadně podsunout.

    Já s webem moc nedělám, moje poslední "webová" aplikace byla napsaná v C++ a Qt s vlastním www serverem - několik různých vláken tahalo data z harware, další vlákno to sypalo nebo tahalo z databáze (sqlite) a několik dalších vláken obsluhovalo web.
    Petr Bravenec - Hobrasoft s.r.o.
    Josef Kufner avatar 10.3.2014 12:54 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Busybox v roli http serveru
    Jen počkej, až tam budeš chtít vypsat seznam. To si se sedem užiješ.
    Hello world ! Segmentation fault (core dumped)
    Petr Bravenec avatar 11.3.2014 07:45 Petr Bravenec | skóre: 43 | blog: Bravenec
    Rozbalit Rozbalit vše Re: Busybox v roli http serveru
    Se sedem to obvykle moc nepřeháním. Kde by sed znamenalo moc práce, použiju obvykle raději awk. Sed je dobrý na přejmenování souborů: s/\.jpeg$/.jpg/ a co tuto složitost přesahuje, řešívám jinak.
    Petr Bravenec - Hobrasoft s.r.o.
    Grunt avatar 10.3.2014 12:54 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: Busybox v roli http serveru
    V libovolném novějším WRTčku se jako výchozí jazyk společně s busyboxem na takové věci používá Lua což je něco mezi opravdovým plnohodnotným a skriptovacím jazykem. Nikdy jsem nepochopil proč, protože než takovou potvoru nějaká lehkotonážní krabička přežvýká, trvá to většinou půl dne.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!

    Založit nové vláknoNahoru

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