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í
×
    dnes 17:22 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.

    Ladislav Hagara | Komentářů: 0
    dnes 00:11 | Nová verze

    UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala Ubuntu Touch 24.04-1.3. Současně oznámila, že nadcházející větší vydání 24.04-2.0 bude mít modernější webový prohlížeč.

    Ladislav Hagara | Komentářů: 0
    včera 17:11 | Zajímavý projekt

    Ploopy po DIY trackballech či sluchátkách představuje nový externí DIY trackpoint se čtyřmi tlačítky Bean. Obsahuje snímač Texas Instruments TMAG5273, spínače Omron D2LS-21 a řadič RP2040, používá firmware QMK. Schémata jsou na GitHubu; sadu lze předobjednat za 69 kanadských dolarů (bez dopravy a DPH).

    |🇵🇸 | Komentářů: 0
    včera 03:33 | Zajímavý článek

    Mozilla před dvěma týdny na svém blogu oznámila, že díky Claude Mythos Preview bylo ve Firefoxu nalezeno a opraveno 271 bezpečnostních chyb. Včera vyšel na Mozilla Hacks článek s podrobnějšími informacemi. Z 271 bezpečnostních chyb mělo 180 chyb vysokou závažnost, 80 chyb střední závažnost a 11 chyb nízkou závažnost. Celkově bylo v dubnu ve Firefoxu opraveno 423 bezpečnostních chyb. Čísla CVE nemusí být přiřazována jednotlivým chybám. CVE-2026-6784 například představuje 154 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 0
    7.5. 22:55 | Bezpečnostní upozornění

    Před týdnem zranitelnost Copy Fail. Dnes zranitelnost Dirty Frag. Běžný uživatel může na Linuxu získat práva roota (lokální eskalaci práv). Na většině linuxových distribucí vydaných od roku 2017. Aktuálně bez oficiální záplaty a CVE čísla [oss-security mailing list].

    Ladislav Hagara | Komentářů: 8
    7.5. 14:00 | Humor

    Ačkoli je papež Lev XIV. hlavou katolické církve a stojí v čele více než miliardy věřících po celém světě, také on někdy řeší všední potíže. A kdo v životě neměl problémy se zákaznickou linkou? Krátce poté, co nastoupil do úřadu, musel papež se svou bankou řešit změnu údajů. Operátorka ale nechtěla uvěřit, s kým mluví, a Svatému otci zavěsila.

    Ladislav Hagara | Komentářů: 11
    7.5. 05:11 | Nová verze

    Incus, komunitní fork nástroje pro správu kontejnerů LXD, byl vydán ve verzi 7.0 LTS (YouTube). Stejně tak související LXC a LXCFS.

    Ladislav Hagara | Komentářů: 0
    7.5. 05:00 | Nová verze

    Google Chrome 148 byl prohlášen za stabilní. Nejnovější stabilní verze 148.0.7778.96 přináší řadu novinek z hlediska uživatelů i vývojářů. Vypíchnout lze Prompt API (demo) pro přímý přístup k AI v zařízení. Podrobný přehled v poznámkách k vydání. Opraveno bylo 127 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    6.5. 16:44 | Komunita

    Richard Hughes oznámil, že po společnostech Red Hat a Framework a organizacích OSFF a Linux Foundation, službu Linux Vendor Firmware Service (LVFS) umožňující aktualizovat firmware zařízení na počítačích s Linuxem, nově sponzorují také společnosti Dell a Lenovo. Do dnešního dne bylo díky LVFS provedeno více než 145 milionů aktualizací firmwarů od více než 100 různých výrobců na milionech linuxových zařízení.

    Ladislav Hagara | Komentářů: 0
    6.5. 15:22 | IT novinky

    Americké technologické společnosti Microsoft, Google a xAI souhlasily, že vládě Spojených států poskytnou přístup k novým modelům umělé inteligence (AI) před jejich uvedením na trh. Oznámila to americká vláda, která tak bude moci prověřit, zda modely nepředstavují hrozbu pro národní bezpečnost. Oznámení podtrhuje rostoucí obavy Washingtonu z rizik spojených s výkonnými AI systémy. Americké úřady chtějí v rámci předběžného přístupu

    … více »
    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (9%)
     (2%)
     (14%)
     (31%)
     (4%)
     (7%)
     (3%)
     (16%)
     (24%)
    Celkem 1540 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: Bash a PHP

    16.11.2012 07:30 omorok | skóre: 2
    Bash a PHP
    Přečteno: 912×
    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: 70
    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: 70
    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: 70
    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: 70
    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.