abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 01:00 | Nová verze Ladislav Hagara | Komentářů: 0
    včera 19:55 | IT novinky

    Intel na veletrhu Computex 2024 představil (YouTube) mimo jiné procesory Lunar Lake a Xeon 6.

    Ladislav Hagara | Komentářů: 0
    včera 13:44 | IT novinky

    Na blogu Raspberry Pi byl představen Raspberry Pi AI Kit určený vlastníkům Raspberry Pi 5, kteří na něm chtějí experimentovat se světem neuronových sítí, umělé inteligence a strojového učení. Jedná se o spolupráci se společností Hailo. Cena AI Kitu je 70 dolarů.

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

    Byla vydána nová verze 14.1 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 12:55 | Zajímavý software

    Společnost Kaspersky vydala svůj bezplatný Virus Removal Tool (KVRT) také pro Linux.

    Ladislav Hagara | Komentářů: 3
    včera 12:33 | Nová verze

    Grafický editor dokumentů LyX, založený na TeXu, byl vydán ve verzi 2.4.0 shrnující změny za šest let vývoje. Novinky zahrnují podporu Unicode jako výchozí, export do ePub či DocBook 5 a velké množství vylepšení uživatelského rozhraní a prvků editoru samotného (např. rovnic, tabulek, citací).

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

    Byla vydána (𝕏) nová verze 7.0 LTS open source monitorovacího systému Zabbix (Wikipedie). Přehled novinek v oznámení na webu, v poznámkách k vydání a v aktualizované dokumentaci.

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

    Organizace Apache Software Foundation (ASF) vydala verzi 22 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.

    Ladislav Hagara | Komentářů: 1
    3.6. 17:00 | IT novinky

    Společnost AMD na veletrhu Computex 2024 představila (YouTube) mimo jiné nové série procesorů pro desktopy AMD Ryzen 9000 a notebooky AMD Ryzen AI 300.

    Ladislav Hagara | Komentářů: 0
    3.6. 16:22 | Nová verze

    OpenCV (Open Source Computer Vision, Wikipedie), tj. open source multiplatformní knihovna pro zpracování obrazu a počítačové vidění, byla vydána ve verzi 4.10.0 . Přehled novinek v ChangeLogu. Vypíchnout lze Wayland backend pro Linux.

    Ladislav Hagara | Komentářů: 0
    Rozcestník

    Zabijácký vypínač

    10.12.2009 20:57 | Přečteno: 1479× | Linux | Výběrový blog | poslední úprava: 12.12.2009 21:28

    Jak jednoduše vypínat, zapínat a přepínat stav bezdrátových zařízení?

    No přeci používáním RF Kill Switch! Protože se mi s posledním jádrem začly chovat rozumě, po softwarové blokaci se samovolně neodblokují - například wifi to s oblibou dělala, jsem si napsal malý skript na obsluhu této vymoženosti. Ano existuje utilita rfkill, ale tam jaksi není ono jednoduché překlopení stavu, proto vlastní řešení, podobnost ostatního je čistě náhodná.

    #!/bin/bash                                          
    SYS_DIR="/sys/class/rfkill"                          
    SYS_FILE="index"                                     
    
    Usage()
    {      
        echo "usage:" >&2
        echo "${0##*/} list" >&2
        echo "${0##*/} block [index|type]" >&2
        echo "${0##*/} unblock [index|type]" >&2
        echo "${0##*/} toggle [index|type]" >&2 
        echo "type:" >&2                        
        echo "all" >&2                          
        cat "$SYS_DIR"/*/type | sort -u >&2     
        exit 1                                  
    }                                           
    
    GetStatusText()
    {              
        case "$1" in
            0)      
                echo "soft blocked"
            ;;                     
            1)                     
                echo "unblocked"   
            ;;                     
            2)                     
                echo "hard blocked"
            ;;                     
        esac                       
    }                              
    
    List()
    {     
        for DIR in "$SYS_DIR"/*; do
            INDEX=$(cat "$DIR"/index)
            NAME=$(cat "$DIR"/name)  
            TYPE=$(cat "$DIR"/type)  
            STATE=$(GetStatusText $(cat "$DIR"/state))
            echo "$INDEX: $NAME: $TYPE: $STATE"       
        done                                          
    }                                                 
    
    SetState()
    {         
        for DIR in "$SYS_DIR"/*; do
            if [ "$3" = "all" ] || [ "$3" = $(cat "$DIR"/"$2") ]; then
                echo "$1" > $DIR/state || exit 1                      
            fi                                                        
        done                                                          
    }                                                                 
    
    Toggle()
    {       
        for DIR in "$SYS_DIR/"*; do
            if [ "$2" = "all" ] || [ "$2" = $(cat "$DIR"/"$1") ]; then
                echo "$((! $(cat "$DIR"/state)))" > "$DIR"/state || exit 1
            fi                                                            
        done                                                              
    }                                                                     
    
    if ! [ -d "$SYS_DIR" ]; then
        echo "${0##*/}: no RF Kill Switch found!"
        exit 1                                   
    fi                                           
    
    if [ "$1" = "list" ]; then
        List                  
        exit 0                
    fi                        
    
    if [ -z "$2" ]; then
        Usage           
        exit 1          
    fi
    
    if cat "$SYS_DIR"/*/type | grep -q ^"$2"$; then
        SYS_FILE="type"
    elif cat "$SYS_DIR"/*/index | grep -q ^"$2"; then
        SYS_FILE="index"
    elif [ "$2" != "all" ]; then
        echo "${0##*/}: no such index or type" >&2
        exit 1
    fi
    
    case "$1" in
        unblock)
            SetState 1 "$SYS_FILE" $2
        ;;
        block)
            SetState 0 "$SYS_FILE" $2
        ;;
        toggle)
            Toggle "$SYS_FILE" $2
        ;;
        *)
            Usage
        ;;
    esac
    
           

    Hodnocení: 100 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

    David Watzke avatar 10.12.2009 22:44 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Zabijácký vypínač
        Err "     ${0/*\/} toggle [index|type]"
        Err "type:"
        Err "    all"
        for TYPE in `cat "$SYS_DIR"/*/type | sort | uniq`; do
    ${0##*/} je lepší než ${0/*\/}, když ti jde o oříznutí řetězce od začátku.

    for x in `cat ...` je hrůza. Tohle nejde?
    cat "$SYS_DIR"/*/type | sort -u | while read TYPE
    Dál jsem to neřešil. Neber to jako buzeraci, jen se snažím pomoct... :-) Jo a ještě přesměrování do stderr je obecnější pomocí tohoto chvatu: >&2.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    vogo avatar 10.12.2009 22:51 vogo | skóre: 34 | blog: "Skládat papír"
    Rozbalit Rozbalit vše Re: Zabijácký vypínač
    jojo, tu je vidět, že jsem dlouho nic nepsal v bashi, bude to chtít si přelouskat nějakou příručku :)
    Nejsem paranoidní, ale to ještě neznamená, že po mě nejdou.
    11.12.2009 07:40 CET
    Rozbalit Rozbalit vše Re: Zabijácký vypínač
    No pozor. Ono for i in ` comman`;do je bohuzel nekdy nutnosti. Min. ve dvou pripadech.

    Prvni pripad je, kdyz kod v cykly neco cte ze stdin, potom totiz command | while read a;do command2 "$a" ; done probehne pouze jednou, protoze z nejakyho duvodu sezere ten command2 ze stdin zbytek toho vystupu z command. Uz se mi to parkrat stalo, pokud si vzpominam, tak to bylo se ssh. generate-host-list | while read host; do ssh "$host" remote-cmd ; done bezelo jenom jednou pro prvniho hosta.

    Druhy pripad je, kdyz chces v cyklu nastavit nejakou hodnotu, kterou pak pouzijes dal. Pipe totiz vyvola dalsi bash, takze veskere upravy jsou pouze lokalni, cili generate-list | while read item;do if [ $item -gt $max ] ; then max=$item;fi;done ; pracuj-dale-s-max nebude to same jako for item in `generate-list` ; do if [ $item -gt $max ];then max=$item;fi;done;pracuj-dale-s-max
    11.12.2009 09:10 mire
    Rozbalit Rozbalit vše Re: Zabijácký vypínač
    Prvy pripad sa da vyriesit prepinacom "-n" pre ssh, potom ssh necita standardny vstup.
    David Watzke avatar 11.12.2009 13:11 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Zabijácký vypínač
    To druhý je IMHO blbost... S max dál pracovat nemůžeš ani když tam dáš ten for...
    dave@amd64 ~ $ for x in $(echo a b c); do max=$item; done
    dave@amd64 ~ $ echo $max
    
    
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    11.12.2009 13:51 maleprase | skóre: 28
    Rozbalit Rozbalit vše Re: Zabijácký vypínač
    kdyz pouzijes spravnou promennou tak muzes
    $ for x in a b c; do max=$x; done
    $ echo $max
    c
    
    David Watzke avatar 12.12.2009 12:52 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Zabijácký vypínač
    Jasně... no jo, jsem tele :-D
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon

    Založit nové vláknoNahoru

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