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 15:33 | Nová verze

Počítačová hra Factorio (Wikipedie) běžící také na Linuxu dospěla do verze 1.0. Oficiální oznámení v příspěvku na blogu. Ukázky na YouTube. Hra byla představena v roce 2013 na Indiegogo.

Ladislav Hagara | Komentářů: 10
včera 09:00 | Bezpečnostní upozornění

Národní bezpečnostní agentura (NSA) a Federální úřad pro vyšetřování (FBI) upozorňují na linuxový malware Drovorub. Odpovědi na nejčastěji kladené dotazy ve FAQ. Detaily v pětačtyřicetistránkové analýze.

Ladislav Hagara | Komentářů: 13
včera 08:00 | Nová verze

Interaktivní výpočetní prostředí Jupyter Notebook (zobecnění dřívějšího IPython Notebook) má také variantu Jupyter Book pro vytváření rozsáhlejších dokumentů. To je nově přepracované – používá systém pro správu obsahu (dokumentace) Sphinx se značkovacím jazykem MyST založeným na Markdownu a nový systém sestavení dokumentu namísto původního Jekyll.

Fluttershy, yay! | Komentářů: 5
včera 07:00 | Nová verze

Bylo vydáno Ubuntu 18.04.5 LTS, tj. páté opravné vydání Ubuntu 18.04 LTS s kódovým názvem Bionic Beaver (poznámky k vydání a přehled změn) a také Ubuntu 16.04.7 LTS, tj. sedmé opravné vydání Ubuntu 16.04 LTS s kódovým názvem Xenial Xerus (poznámky k vydání a přehled změn).

Ladislav Hagara | Komentářů: 11
včera 06:00 | Nová verze

Byla vydána nová verze 1.48 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.48 bude vydáno také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

Ladislav Hagara | Komentářů: 0
13.8. 19:11 | Zajímavý projekt

Neziskové technologické konsorcium Linux Foundation a společnosti Grillo a IBM společně představili projekt OpenEEW (GitHub) neboli open source systém včasného varování před zemětřeseními (earthquake early-warning).

Ladislav Hagara | Komentářů: 0
13.8. 16:33 | Nová verze

Byla vydána nová verze 5.1.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 235 vývojářů. Provedeno bylo více než 2 500 commitů. Přehled úprav a nových vlastností v seznamu změn.

Ladislav Hagara | Komentářů: 3
13.8. 16:11 | Nová verze

Byla vydána nová verze 20.08.0 KDE Aplikací (KDE Applications). Přehled novinek i s náhledy v oficiálním oznámení (sk), v kompletním seznamu změn a na stránce s dalšími informacemi.

Ladislav Hagara | Komentářů: 0
12.8. 13:55 | Komunita

Nadace The Document Foundation (TDF) zastřešující vývoj svobodného kancelářského balíku LibreOffice zveřejnila čtyřiapadesátistránkovou výroční zprávu za rok 2019. K dispozici je v nízkém (6,4 MB) i vysokém (53,2 MB) rozlišení. Nadace také publikovala statistiky související s LibreOffice 7.0. Před týdnem vydaná verze byla z oficiálních stránek stažena již 423 tisíckrát.

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

Když se řekne „jmenný prostor“ hodně lidí si představí xmlns v XML nebo balíčky v Javě odvozené od internetových domén. Jmenné prostory jsou ale obecný koncept se kterým se setkáme prakticky všude a odvozovat je můžeme i jinak. Článek Jména a jmenné prostory dává toto téma do souvislostí a ukazuje různé způsoby tvorby jmenných prostorů. Nahlédneme i do zajímavého světa RDF a ukážeme si, jak vytvářet URI, která budou globálně unikátní jednou provždy.

xkucf03 | Komentářů: 10
Dokážete si představit, že by váš hlavní počítač (desktop, notebook) byl v současné době založen na architektuře jiné než x86 (x86_64)? Například ARM, POWER, RISC-V,…
 (13%)
 (11%)
 (56%)
 (14%)
 (5%)
Celkem 264 hlasů
 Komentářů: 16, poslední včera 04:55
Rozcestník

Busybox v roli http serveru

10.3.2014 05:41 | Přečteno: 1386× | 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: 69
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: 69
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.