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 23:55 | Pozvánky

Spolek OpenAlt zve příznivce otevřených technologií a otevřeného přístupu na 145. brněnský sraz, který proběhne v pátek 20. října od 18:00 hodin v restauraci Time Out na adrese Novoměstská 2 v Řečkovicích. Jedná se o poslední sraz před konferencí OpenAlt 2017, jež proběhne o víkendu 4. a 5. listopadu 2017 na FIT VUT v Brně. Běží registrace účastníků.

Ladislav Hagara | Komentářů: 0
včera 21:44 | Nová verze

Byla vydána verze 5.2.0 multiplatformního virtualizačního nástroje Oracle VM VirtualBox. Jedná se o první stabilní verzi z nové větve 5.2. Z novinek lze zmínit například možnost exportování VM do Oracle Cloudu, bezobslužnou instalaci hostovaného systému nebo vylepšené GUI. Podrobnosti v seznamu změn. Aktualizována byla také dokumentace.

Ladislav Hagara | Komentářů: 1
včera 14:00 | Zajímavý projekt

Byl spuštěn Humble Down Under Bundle. Za vlastní cenu lze koupit multiplatformní hry The Warlock of Firetop Mountain, Screencheat, Hand of Fate a Satellite Reign. Při nadprůměrné platbě (aktuálně 3,63 $) také Hacknet, Hacknet Labyrinths, Crawl a Hurtworld. Při platbě 12 $ a více lze získat navíc Armello.

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

Google Chrome 62 byl prohlášen za stabilní (YouTube). Nejnovější stabilní verze 62.0.3202.62 tohoto webového prohlížeče přináší řadu oprav a vylepšení. Vylepšeny byly také nástroje pro vývojáře (YouTube). Opraveno bylo 35 bezpečnostních chyb.

Ladislav Hagara | Komentářů: 2
včera 11:00 | Zajímavý článek

Článek (en) na Mozilla.cz je věnován vykreslování stránek ve Firefoxu. V průběhu roku 2018 by se ve Firefoxu měl objevit WebRender, jenž by měl vykreslování stránek urychlit díky využití GPU.

Ladislav Hagara | Komentářů: 4
včera 08:22 | Bezpečnostní upozornění

NÚKIB (Národní úřad pro kybernetickou a informační bezpečnost) informuje o zranitelnosti ROCA v procesu generování RSA klíčů, který se odehrává v softwarové knihovně implementované například v kryptografických čipových kartách, bezpečnostních tokenech a dalších hardwarových čipech vyrobených společností Infineon Technologies AG. Zranitelnost umožňuje praktický faktorizační útok, při kterém útočník dokáže vypočítat

… více »
Ladislav Hagara | Komentářů: 3
včera 01:23 | Zajímavý software

Příspěvek na blogu otevřené certifikační autority Let's Encrypt informuje o začlenění podpory protokolu ACME (Automatic Certificate Management Environment) přímo do webového serveru Apache. Klienty ACME lze nahradit novým modulem Apache mod_md. Na vývoj tohoto modulu bylo uvolněno 70 tisíc dolarů z programu Mozilla Open Source Support (MOSS). K rozchození HTTPS na Apache stačí nově přidat do konfiguračního souboru řádek s ManagedDomain. Minutový videonávod na YouTube [reddit].

Ladislav Hagara | Komentářů: 2
17.10. 14:15 | Komunita

Daniel Stenberg, autor nástroje curl, na svém blogu oznámil, že obdržel letošní Polhemovu cenu, kterou uděluje Švédská inženýrská asociace za „technologickou inovaci nebo důvtipné řešení technického problému“.

marbu | Komentářů: 10
17.10. 13:40 | Pozvánky

Cílem Social Good Hackathonu, který se uskuteční 21. a 22. října v Brně, je vymyslet a zrealizovat projekty, které pomůžou zlepšit svět kolem nás. Je to unikátní příležitost, jak představit nejrůznější sociální projekty a zrealizovat je, propojit aktivní lidi, zástupce a zástupkyně nevládních organizací a lidi z prostředí IT a designu. Hackathon pořádá brněnská neziskovka Nesehnutí.

… více »
Barbora | Komentářů: 1
17.10. 00:44 | Pozvánky

V sobotu 21. října 2017 se na půdě Elektrotechnické fakulty ČVUT v Praze uskuteční RT-Summit – setkání vývojářů linuxového jádra a uživatelů jeho real-time verze označované jako preempt-rt.

… více »
Pavel Píša | Komentářů: 8
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (13%)
 (2%)
 (0%)
 (2%)
 (73%)
 (11%)
Celkem 63 hlasů
 Komentářů: 4, poslední včera 21:50
    Rozcestník

    Dotaz: Bash a PHP

    16.11.2012 07:30 omorok | skóre: 2
    Bash a PHP
    Přečteno: 716×
    Přeji dobrý den, Mám pár dotazů. Předem upozorňuji, že nejsem programátor...

    Dávám si dohromady mylý monitorovací počítač (Raspberry PI), který mi bude odchytávat data z regulace (momentálně co se kdysi vyráběla a do budoucna ji vyměním za Arduino). Z regulace mi po RS 485 přichází každou sekundu naměřená data (teploty,stav čerpadla...). V Raspberry tyto hodnoty sleduji (pomocí Bash skriptu), zpracovávám a ukládám podle potřeby na disk. Zároveň mi na Raspberry běží i web-server s PHP. A mám dotazy: 1) Kam mám uložit spuštění Bash skriptu, aby se po výpadku napětí spustil? pokud to přidám do ~/.profile, nebo do ~/.bashrc, tak se skript spustí až se přihlásím (např. přes SSH)? 2) Jak posílat data ze skriptu Bash do PHP? Co jsem pátral, tak vím o dvou možnostech: 1- přes textový soubor. Bash bude např každou sekundu přepisovat určený soubor a PHP podle potřeby bude z něho číst. Nevýhoda- myslím si, že disk dlouhodobě takovéto ukládání nevydrží (v raspberry je SD karta). ideální by bylo, pokud by takový soubor neexistoval na disku, ale jen v paměti RAM, ale to nevím jak a kde udělat. Nebo 2- možnost přes pojmenovanou rouru. Ale to je navýhoda, pokud PHP nepotřebuje data (nikdo si stránku neprohlíží), roura se nevyprázdní a tím je Bash skript zastaven- nepřípustné.

    Děkuji za pomoc...

    Odpovědi

    16.11.2012 08:56 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Bash a PHP
    1. Asi bych v tomto případě si to dal spuštění s plnou cestou a & na konci /etc/rc.local (případně lze použít ještě nohup).
      V /etc/rc.local:
      /cesta/k/programu &
      Ale asi bude lepší a někdo to dále doporučí použít update-rc.d nebo ruční vytvoření linky.
    2. Soubor do paměti lze uložit nejjednodušeji, tím že se uloží /dev/shm/muj_nazev_souboru, ale mně přijde lepší si vytvořit vlastní ram-disk, vytvořit adresář např. /mnt/moje a do fstab dát řádek none /mnt/moje tmpfs defaults,size=10m 0 0
      Ovšem asi bude nutné nějak zamykat zápis/čtení. Třeba SQLite a datový soubor v paměti by to mohlo vyřešit samo.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    Josef Kufner avatar 22.11.2012 12:37 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: Bash a PHP
    Já bych do tmpfs připojil celé /tmp (a dal mu trochu vyšší limit na velikost). Na takovém stroji to bude asi nejjednodušší a ušetří to flashku se systémem.

    Statistiky bych pak jednou za čas odzálohoval mimo paměť. Jak často záleží na spolehlivosti systému a důležitosti dat.

    Jinak bych se vykašlal na Bash a napsal to celé v PHP s tím, že ten první skript by se spouštěl stejně jako ten Bash script. Může to zjednodušit propojení těch dvou skriptů (generování a parsování toho souboru -- json_encode/decode) a odstranit případnou duplikaci některých částí.
    #!/usr/bin/env php
    <php
    ...
    Spouštění pak lze připsat rovnou do /etc/inittab. V případě pádu se zajistí i nové spuštění toho scriptu.
    Hello world ! Segmentation fault (core dumped)
    22.11.2012 15:07 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Bash a PHP
    Klidně by to tak šlo, držel jsem se toho rozdělení…, ale autora už to nezajímá :-).
    K tomu: tmpfs připojil celé /tmp, mám jen zkušenost, že ten limit na /tmp je zrádný, nebo musí být velký (třeba 6GiB) aby to bylo v pohodě v dnešní době. Při nižších hodnotách se klidně může stát, že při vytváření například video DVD se to celé zauzlí či sletí (samozřejmě je to věc aplikací, ale už jsem měl potíže s 2GiB /tmp z podobných důvodů).
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    Josef Kufner avatar 22.11.2012 19:09 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: Bash a PHP
    Už vidím jak Raspberry připojené k čerpadlu vypaluje DVD ;-)
    Hello world ! Segmentation fault (core dumped)
    23.11.2012 11:07 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Bash a PHP
    Vytvoří z naměřených dat prezentační DVD ;-).
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    23.11.2012 13:33 omorok | skóre: 2
    Rozbalit Rozbalit vše Re: Bash a PHP
    Děkuji za názory. Trochu jsem byl pracovně mimo a netušil jsem jak se to tady rozvine. Zaujal mě názor, že by to psal jen v PHP. Mám k tomu jeden dotaz: Pokud chci, by se mi každou sekundu prováděli nějaké matematické operace, jak to PHP bude dělat, pokud zrovna nikdo nebude prohlížet webové stránky? Já jsem měl za to,že PHP funguje tak, že pokud vyžádám danou stránku, kde je HTML kod s PHP, tak se provede kod a odešle do prohlížeče a pak se čeká na další požadavek od uživatele...Nebo ne?
    23.11.2012 13:35 DK
    Rozbalit Rozbalit vše Re: Bash a PHP
    PHP ma i CLI :) takze treba vytvorit nekonecnou smycku
    23.11.2012 16:18 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Bash a PHP
    Můžete klidně použít výše odkazované #!/usr/bin/env php (nebo podobný zápis) a psát ot normálně jako script a přidat mu 'x' oprávnění.
    PHP lze používat jako každý podobný jazyk:
     php -r 'for($i=0;$i < 10;$i++){echo "Hallo PHP - $i\n"; sleep(1);}'
    nebo
    php file.php
    kde v file.php dáte jen na začátek <?php.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    Josef Kufner avatar 24.11.2012 11:35 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: Bash a PHP
    Každou minutu to můžeš zpustit z cronu. Je celkem jedno, jestli to budeš spouštět wgetem přes webový server na localhostu nebo přes CLI (command line interface, jak už jsem psal poprvé).

    PHP není jen "HTML a něco k tomu". Pokud tu aplikaci chceš napsat slušně, na tenhle přístup zapomeň. Webové aplikace jsou obvykle rozrěleny na tři části: řídící logika, model a šablony. Model je pár tříd, které reprezentují věci, se kterými aplikace manipuluje. Řídící logika rozhoduje, co se s modelem bude dít. Šablony pak jsou to "HTML a něco k tomu", které dostanou od aplikační logiky připravená data k zobrazení.

    Nehledej v tom nic složitého, je to jen o uspořádání kódu. Uděláš si třídu pro čerpadlo, tam dáš ty svoje výpočty, pak druhou na komunikaci s čerpadlem. V index.php pak jen rozhodneš, co se bude počítat, co komunikovat a nasbíraná data hodíš do pole a předáš ho funkci (šabloně), která jako jediná bude dělat echo, echo, echo,... Takle se v tom neztratíš, bude to udržovatelné a přehledné. Jak ten index.php spustíš už je celkem jedno (web server nebo CLI).
    Hello world ! Segmentation fault (core dumped)
    27.11.2012 08:56 omorok | skóre: 2
    Rozbalit Rozbalit vše Re: Bash a PHP
    Děkuji za radu a v podstatě tomu rozumím. Ještě musím ověřit spouštění PHP skriptu...

    Ale zatím nevím,jak mám pracovat v php s polem.

    Z regulace mi jde toto: 2,3,33,44,55,66,9,1 ,nebo i toto: 2888,3888,89,55,10,0,0.

    Bash skript mám takto:
    while true; do										 
    	a=`head -1 /dev/ttyUSB0 | tr "," " "`			
    	b=($a)											
    	U=${b[0]}									
    	I=${b[1]}										
    	Tkol=${b[2]}									
    	Tzass=${b[3]}									
    	Tzash=${b[4]}									
    	Taku=${b[5]}									
    	Pfv=${b[6]}										
    	Rez=${b[7]}									
    	Cer=${b[8]}										
    	
    fi
    kde do proměnné $a načtu vstup z ttyUSB0 a místo čárek vložim mezery. Proměnnou $a vložim do závorek a tím určim, že je to pole a přiřadim k proměnné $b. Dále již přiřazuji k proměnným jednotlivé položky a mohu s nimi pracovat (pořítat). Jelikož v poli jsou položky určovány čákou, mohou se měnit počet čísel v jednom poli.

    V PHP načítám z ttyUSB0:
    ?php $data=fopen("/dev/ttyUSB0", "r");
    	$text=fgets($data);
    	echo ($text); #poznámka
    	fclose($data); ?
    To načte celý vstup, což je vpořádku, pokud chci jen jednu položku a zadám pole: echo ($text[1]);, tak zobrazí jen jedno číslo, nebo i čárku ze vstupu ttyUSB0. Což nepotřebuji. Umí php načíst (rozdělit) do pole podle čárek...?
    27.11.2012 09:21 Kit
    Rozbalit Rozbalit vše Re: Bash a PHP
    Josef Kufner avatar 27.11.2012 11:17 Josef Kufner | skóre: 67
    Rozbalit Rozbalit vše Re: Bash a PHP
    Možností je spousta.

    Btw, malé intro.
    Hello world ! Segmentation fault (core dumped)
    13.12.2012 09:19 omorok | skóre: 2
    Rozbalit Rozbalit vše Re: Bash a PHP
    Po nějaké době jsem pohnul v "programování". A potřebuji pomoci. Napsal jsem program, který by měl dělat "rutinu". Bude načítat data z USB0, převádět, počítat a ukládat do souborů. Program mi sice funguje,ale v terminálu mi vypisůjí hlášky, které netuším co je:

    Výpis z terminálu, postupně se neustále opakuje:

    zde

    a rovněž přikládám daný program:

    Zde

    Nevím, kde mám chybu.

    A mám ještě dotaz:

    Jak bylo psáno výše, mám hlavní soubor např: index.php a do něho se načítají hodnoty z externího souboru např. regulace.php . Tím je v souboru index.php jen echo,echo... A v souboru regulace.php jsou načítány aktuální hodnoty. Tento soubor se aktualizuje pomocí volání z webového prohlížeče (index.php). A pokud k tomu potřebuji přiřadit další soubor regulace0_013B.php, který je spuštěn pomocí PHP5-CLI a ten dělá rutinu v ciklu. Jak hodnoty z regulace0_013B.php dostanu do souboru regulace.php? Nebo odstraním soubor regulace.php a nahradím souborem regulace0_013B.php? Nebude to dělat problémy, pokud by tento soubor byl spuštěn přes PHP-CLI a občas (zárověň) bude volán index.php?
    13.12.2012 11:58 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Bash a PHP
    Měl jste to položit jako nový dotaz...

    K tomu problému s Notice:, pokud pole načtete ze souboru pomocí fgetcsv, nelze zaručit, že bude vždy vytvořeno pole dané délky, resp. existence hodnot na těch indexech 1, 2, 3..., které tam natvrdo dáváte. Proto ten warning. Šlo by nadefinovat pole určité délky pomocí nějakého splněcoarray, ale možná by se to dalo zajímavé obejít pomocí array_combine($keys, $textpole). Nejprve byste si nadefinoval pole klíčů (v podstatě názvy sloupců v tom csvčku čili $keys=array("Ufve", "Ifve"...) a pak ho zkusíte zkombinovat s tím, co načtete ze souboru (zdá se mi že čtete jen jeden řádek). Ohlídá vám to i počet načtených hodnot (vyhodí exception pokud nesouhlasí) a budete k tomu moct i přistupovat pomocí symbolických jmen, takže je pak otázka jestli to vůbec bude potřeba "přelévat" do proměnných. Každopádně předpokládám, že bychom se tím vyhnuli tomu problému s potenciálně nedefinovanými indexy.
    13.12.2012 14:17 omorok | skóre: 2
    Rozbalit Rozbalit vše Re: Bash a PHP
    tak jsem se na to díval a chápu řádek:

    $keys=array("$Ufve", "$Ifve", "$Tkol", "$Tzass", "$Tzash", "$Taku", "$Pfve", "$rez", "$cer");

    Do další proměnné bych měl dostat vstup z USB0, což nevím přesně jak-možná takto:

    $data= fopen("/dev/ttyUSB0", "r"); $textpole = array($data);

    a pak to zkombinovat...

    $cele = arrya_combine($keys, $textpole);

    do dev/ttyUSBO přichází data z regulace po RS485 přes převodník co 1s.
    13.12.2012 22:09 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Bash a PHP
    Až na ty dolary, protože tam dáváte jen jakési symbolické memotechnické názvy pro ty výsledné hodnoty, je to podobné jako proměnné, ale proměnné to nejsou, proměnnou je to pole, jeho jednotlivé prvky pak rozlišujete těmi jmennými indexy:
    $keys=array("Ufve", "Ifve", "Tkol", "Tzass", "Tzash", "Taku", "Pfve", "rez", "cer");
    Potom můžete počítat rovnou s proměnnými jakožto prvky v poli:
    $cele["Ufve"] + $cele["Ifve"]
    nebo si to převést na normální proměnné jako předtím.

    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.