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 | Nová verze

    Byl vydán Linux Mint 22.2 s kódovým jménem Zara. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze novou XApp aplikaci Fingwit pro autentizaci pomocí otisků prstů nebo vlastní fork knihovny libAdwaita s názvem libAdapta podporující grafická témata. Linux Mint 22.2 bude podporován do roku 2029.

    Ladislav Hagara | Komentářů: 0
    dnes 12:55 | IT novinky

    Čínská společnost Tencent uvolnila svůj AI model HunyuanWorld-Voyager pro generování videí 3D světů z jednoho obrázku a určené trajektorie kamery. Licence ale nedovoluje jeho používání na území Evropské unie, Spojeného království a Jižní Koreje.

    Ladislav Hagara | Komentářů: 0
    dnes 12:11 | Komunita

    Blender Studio se spojilo s kapelou OK Go a výsledkem je videoklip k písni Impulse Purchase. Stejně jako samotný 3D software Blender je i ve videoklipu použitý animovaný chlápek open source. Kdokoli si jej může stáhnout a upravovat.

    Ladislav Hagara | Komentářů: 0
    dnes 01:33 | Komunita

    Zig Software Foundation stojící za programovacím jazykem Zig publikovala finanční zprávu za rok 2024. Současně s prosbou o finanční příspěvek.

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

    Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za srpen (YouTube). Vypíchnuta je podpora Tabulek Google, implementace Gamepad API a Cookie Store API nebo také podpora WebGL na Linuxu.

    Ladislav Hagara | Komentářů: 0
    včera 20:44 | Komunita

    openSUSE Leap 16, včetně Leap Micra 6.2+, nově nabízí 24 měsíců podpory pro každé vydání. To je dva roky aktualizací a stability, což z něj činí nejdéle podporovanou komunitní distribuci vůbec. Leap se tak stává ideální platformou pro všechny, kdo hledají moderní, stabilní a dlouhodobě podporovanou komunitní Linux distribuci.

    lkocman | Komentářů: 0
    včera 16:33 | Bezpečnostní upozornění

    Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) vydal dne 3. 9. 2025 VAROVÁNÍ před hrozbou v oblasti kybernetické bezpečnosti spočívající v předávání systémových a uživatelských dat do Čínské lidové republiky a ve vzdálené správě technických aktiv vykonávané z území Čínské lidové republiky. Varováním se musí zabývat povinné osoby podle zákona o kybernetické bezpečnosti.

    Ladislav Hagara | Komentářů: 27
    včera 11:55 | IT novinky

    Americká internetová společnost Google nemusí prodat svůj prohlížeč Chrome ani operační systém Android. Rozhodl o tom soud ve Washingtonu, který tak zamítl požadavek amerického ministerstva spravedlnosti. Soud ale firmě nařídil sdílet data s jinými podniky v zájmu posílení konkurence v oblasti internetového vyhledávání. Zároveň Googlu zakázal uzavírat dohody s výrobci mobilních a dalších zařízení, které by znemožňovaly

    … více »
    Ladislav Hagara | Komentářů: 3
    včera 11:33 | Humor

    Prvního září ozbrojení policisté zatkli na na londýnském letišti Heathrow scénáristu a režiséra Grahama Linehana, známého především komediálními seriály Ajťáci, Otec Ted nebo Black Books. Během výslechu měl 57letý Graham nebezpečně zvýšený krevní tlak až na samou hranici mrtvice a proto byl z policejní stanice převezen do nemocnice. Důvodem zatčení bylo údajné podněcování násilí v jeho 'vtipných' příspěvcích na sociální síti

    … více »
    Gréta | Komentářů: 98
    včera 10:22 | Pozvánky

    Studentská dílna Macgyver zve na další Virtuální Bastlírnu - pravidelné online setkání všech, kdo mají blízko k bastlení, elektronice, IT, vědě a technice. Letní prázdniny jsou za námi a je čas probrat novinky, které se přes srpen nahromadily. Tentokrát jich je více než 50! Těšit se můžete mimo jiné na:

    Hardware – Bus Pirate na ESP32, reverse engineering Raspberry Pi, pseudo-ZX-80 na RISC-V, PicoCalc, organizéry na nářadí z pěny nebo … více »
    bkralik | Komentářů: 0
    Pro otevření více webových stránek ve webovém prohlížečí používám
     (82%)
     (8%)
     (2%)
     (3%)
     (4%)
     (1%)
    Celkem 141 hlasů
     Komentářů: 11, poslední dnes 16:12
    Rozcestník

    Bash: akcia pri CPU idle alebo load

    15.8.2009 00:49 | Přečteno: 1397× | Skripty | Výběrový blog | poslední úprava: 15.8.2009 00:49

    Procesorovo nenarocny skript v bashi, ktory spusti nejaku akciu (alebo iba pipne) v momente, ked zatazenie CPU klesne pod definovanu uroven (pripadne stupne nad definovanu uroven). Vhodne ako upozornovanie na ukoncenie dlhych uloh spustanych z GUI, pre ktore sa neda podobnu funkcnost dosiahnut zretazenim prikazov v shelli.

    Pred tyzdnom som sa vratil z Norska, kde som nafotil 1900 fotiek z toho je aspon tretina v panoramach (Lofoty su proste uzasne). Takze posledny tyzden smazim procak a program hugin na skladanie panoram. Problem je, ze poskladat velke panoramy (2x12 fotiek, pripadne 4x4 a podobne) trva hodne casu. Najst kontrolne body par minut, doladit, optimalizovat rozlozenie fotiek a nakoniec poskladat. Nejde o moj cas, ale o strojovy a tak popri skladani si nejakej inej aplikacii mozem robit co chcem. Chcel som ale byt upozorneny, ze hugin dokoncil nejaky krok a caka na mna, nez ho postelujem a pustim dalej. Takze som si napisal skript, ktory sleduje vyuzitie procaku a pri poklese pod nejaku hodnotu pipne.

    Skript sa da obecne vyuzit na cokolvek, kde clovek potrebuje cakat, nez skonci nejaka procesorovo narocna akcia. Ak sa to da spustit v shelli, tak je riesenie ./longrun && play sound.wav. Ak je to ale akcia nespustitelna dostatocne jednoducho zo shellu (napriklad aplikovanie filtru alebo otocenie obrovskeho obrazku v Gimpe (iste da sa naskriptovat aj Gimp, ale nie je to prave pohotove), tak su len dve moznosti: bud sa kazdu chvilu prepinat a pozerat ci uz skoncil, alebo sledovat CPU v nejakom monitore v systray. Alebo nechat niekoho, nech to sleduje za mna. Zaroven by to riesenie nemalo byt tak narocne, aby zatazovalo CPU tak, ze jednak spomali hlavnu cinnost a dvak samo vygeneruje taku zataz, ze vyuzitie CPU nikdy neklesne dostatocne hlboko. Takze riesenie s vytvaranim procesu kazdu sekundu a preskumanie stavu nie je dobre.

    Ked uz som pisal ten skript, tak som ho napisal dostatocne obecne, aby sa dal vyuzit na kadeco ine, nez len na sledovanie dokoncenia nejakej ulohy. Konfigurovatelna akcia sa moze spustit bud pri zatazi CPU nad nastavitelny horny limit alebo pod nastavitelny dolny limit (upozorni na ukoncenie zataze alebo na jej zaciatok). Da sa nastavit, ze za limitom musi stravit nejaky pocet sekund, aby sa akcia spustila (aby si nevsimal kratkodobe poklesy vyuzitia CPU). Pre jednoduchost je akcia pipnutie zabudovana, takze na jej zapnutie staci prepinac (defaut prehravane subory si snad kazdy dokaze nasmerovat kam chce). Skript vyuziva ako zdroj vmstat, ostatne veci (bash, sed, play) su vcelku bezne.

    Volby su -b (pipnut pri dosiahnuti stavu idle), -c (argument je prikaz, ktory sa ma spustit, ak sa CPU dostane do stavu idle), -l (ake percentualne vyuzitie CPU je uz povazovane za stav idle), -t (ako dlho musi byt vyuzitie CPU pod limitom, aby bola situacia povazovana za stav idle. Rovnake volby s velkym pismenom nastavuju parametre pre sledovanie naopak zatazeneho CPU. Par prikladov:
    # pri poklese zataze po dobu aspon 5s pipni a vypis "idle"
    idleload -b -t5 -c "echo idle"
    
    # pri poklese zataze pod 60% hned pipni, ale ignoruj vysoku zataz CPU kratsiu ako 5s
    # (na koniec kratuckych uloh nie je nutne upozornovat)
    idleload -b -T5 -l60
    
    # po spusteni narocnej ulohy z GUI mozeme ist spat. Az skonci, tak sa uspi.
    # "exit" je nutny, aby skript idleload po zobudeni skoncil
    # a pocitac sa neuspal pri najblizsom idle znova
    idleload -t 60 -c "sudo hibernate; exit"
    Skript je vcelku kratky, polovica je help a spracovanie parametrov. Interne nie je sledovana zataz CPU (pretoze sa rozpada do zloziek user/sys/wait), ale stav idle. Vmstat periodicky vypisuje stav systemu bez toho, aby na to potreboval stale novy proces. Sed z toho vypreparuje zlozku idle. Na zmenu stavu (z idle na load a naopak) je nutne, aby v opacnom stave stravil procesor dostatocne dlhu dobu (parametre -t/-T), inak by sa stav menil uz pri nahodnych poklesoch/narastoch vyuzitia CPU. Countre pocitajuce cas straveny v stave su testovane na rovnost (a nie na vacsi rovny), aby sa zvolena akcia vykonala iba raz (pri zmene stavu) a nie stale, kym je CPU nad/pod limitom. Dve miliardy sekund ten skript asi nepobezi, takze nevadi, ze countre mozu neobmedzene rast.
    #!/bin/bash
    
    #defaults
    loadlimit=90
    idlelimit=30
    loadtime=2
    idletime=2
    loadbeepfile=/usr/kde/3.5/share/sounds/KDE_Beep_Digital_1.ogg
    idlebeepfile=/usr/kde/3.5/share/sounds/KDE_Beep_ClassicBeep.wav
    
    printusage() {
        echo "Run specified commands (or beep) after CPU being idle or under load for given time."
        echo "Usage: ${0##*/} [-bB] [-c CMD] [-C CMD] [-l NUM] [-L NUM] [-t NUM] [-T NUM]"
        echo "    -b    beep after CPU being idle"
        echo "    -B    beep after CPU being under load"
        echo "    -c    command to run after CPU being idle"
        echo "    -C    command to run after CPU being under load"
        echo "    -h    this help"
        echo "    -l    limit of CPU load value to consider CPU as idle (default 30)"
        echo "    -L    limit of CPU load value to consider as under load (default 90)"
        echo "    -p    periodically print load value of CPU"
        echo "    -t    time that CPU has to be idle to run idle command (default 2s)"
        echo "    -T    time that CPU has to be under load to run load command (default 2s)"
    }
    
    while getopts "bBc:C:hl:L:pt:T:" flag; do
        case "$flag" in
        b) idlebeep=yes
            ;;
        B) loadbeep=yes
            ;;
        c) idlecmd="$OPTARG"
            ;;
        C) loadcmd="$OPTARG"
            ;;
        l) idlelimit="$OPTARG"
            ;;
        L) loadlimit="$OPTARG"
            ;;
        p) printidle=yes
            ;;
        t) idletime="$OPTARG"
            ;;
        T) loadtime="$OPTARG"
            ;;
        h) printusage
            exit 0
            ;;
        *) printusage
            exit 1
            ;;
        esac
    done
    
    if [[ -z "$idlebeep$loadbeep$idlecmd$loadcmd" ]]; then
        echo "Nothing to do. See ${0##*/} -h for help."
        exit 0
    fi
    
    # start in idle state
    idle="$idletime"
    load=0
    
    vmstat -n 1 |
    sed -ru '
        1,2d
        # get idle part
        s/^ *([0-9]+ +){14}(..).*/\2/
    ' |
    while read cpuidle; do
        # count load from idle
        cpuload=$((100 - $cpuidle))
    
        [[ "$printidle" == yes ]] &&
            echo $cpuload
    
        # load
        if [[ $cpuload -ge "$loadlimit" ]]; then
            ((load++))
            if [[ "$load" -eq "$loadtime" ]]; then
                idle=0
                [[ "$loadbeep" == yes ]] &&
                    play "$loadbeepfile" 2>/dev/null
                eval $loadcmd
            fi
        else
            # not-load state of CPU reset counter of load if not already full load reached
            [[ "$load" -lt "$loadtime" ]] &&
                load=0
        fi
    
        # idle
        if [[ $cpuload -le "$idlelimit" ]]; then
            ((idle++))
            if [[ "$idle" -eq "$idletime" ]]; then
                load=0
                [[ "$idlebeep" == yes ]] &&
                    play "$idlebeepfile" 2>/dev/null
                eval $idlecmd
            fi
        else
            # not-idle state of CPU reset counter of idle if not already full idle reached
            [[ "$idle" -lt "$idletime" ]] &&
                idle=0
        fi
    done
    
           

    Hodnocení: 100 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

    thingie avatar 15.8.2009 00:52 thingie | skóre: 8
    Rozbalit Rozbalit vše Re: Bash: akcia pri CPU idle alebo load
    A batch by nestačil?
    Růžové lži.
    15.8.2009 00:56 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: Bash: akcia pri CPU idle alebo load
    A ktory batch? Goggle: batch "Výsledky 1 - 25 z približne 45 800 000"
    # eix batch
    No matches found.
    If you hold a Unix shell up to your ear, you can you hear the C.
    thingie avatar 15.8.2009 01:35 thingie | skóre: 8
    Rozbalit Rozbalit vše Re: Bash: akcia pri CPU idle alebo load
    Kam jsme to zase došli.

    batch(1), je to běžná (naprosto) součást at démona. Sice velmi primitivní, ale… samozřejmě existují složitější plánovače, když je to třeba.
    Růžové lži.
    15.8.2009 10:33 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: Bash: akcia pri CPU idle alebo load
    No, podla manualu je batch(1) schopny sa rozhododvat len podla "load average", co je nieco ine ako okamzite zatazenie CPU. Cakat kym load average padne je v pripade spustania uloh z GUI s niekolkominutovym behom dost nepouzitelne.
    If you hold a Unix shell up to your ear, you can you hear the C.
    thingie avatar 15.8.2009 15:02 thingie | skóre: 8
    Rozbalit Rozbalit vše Re: Bash: akcia pri CPU idle alebo load
    No, ono je to jedno, protože pro tenhle konkrétní daný případ je to stejně naprosto špatný nástroj, mnohem lepší by bylo prostě korektně dohackovat do huginu nějaké notifikace.
    Růžové lži.
    15.8.2009 20:07 Matlák
    Rozbalit Rozbalit vše Re: Bash: akcia pri CPU idle alebo load
    Když renderuju animaci v blenderu, stačí poslouchat větrák. Zdroj je slabý, takže po dokončení procesorově náročné akce se větráky roztočí neznatelně (ale slyšitelně) rychleji :-)
    17.8.2009 19:53 Semo | skóre: 45 | blog: Semo
    Rozbalit Rozbalit vše Re: Bash: akcia pri CPU idle alebo load
    No, som skvely. Uz skoro trvale bezim nieco ako idleload -b -T15 -c 'kdialog --passivepopup "Done" 3'. Zistil, ze sa mi hodi upozornovat na koniec vsetkych cinnosti, ktore na viac ako 15s zamestnaju procak. To je taka magicka hranica pre mna, ked uz necakam na dokoncenie ulohy (kopirovanie filmov, rozbalovanie archivov atd.), ale prepinam na browser alebo niekam inam. A nie vzdy mam zapnute repraky alebo sluchatka, takze este popup do laveho horneho rohu.
    If you hold a Unix shell up to your ear, you can you hear the C.

    Založit nové vláknoNahoru

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