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 16:00 | Nová verze

Byl vydán Mozilla Firefox 51.0. Z novinek lze upozornit například na upozorňování na přihlašování přes nešifrované spojení (HTTP), podporu pro přehrávání bezeztrátového formátu FLAC nebo podporu WebGL 2. Podrobné informace v poznámkách k vydání a na stránce věnované vývojářům. Řešeny jsou také bezpečnostní chyby.

Ladislav Hagara | Komentářů: 2
23.1. 17:25 | IT novinky

Do prodeje (Farnell) se dostal jednodeskový počítač Tinker Board (unboxing). Jedná se o konkurenci Raspberry Pi 3 od společnosti Asus. Porovnání (jpg) těchto počítačů například na CNXSoft. Cena Tinker Boardu je 55 £.

Ladislav Hagara | Komentářů: 15
23.1. 14:44 | Zajímavý projekt

Byla zveřejněna pravidla hackerské soutěže Pwn2Own 2017, jež proběhne od 15. do 17. března v rámci bezpečnostní konference CanSecWes ve Vancouveru. Soutěžit se bude o více než milion dolarů v pěti kategoriích. Letos se bude útočit i na Ubuntu. Jedná se již o 10. ročník této soutěže.

Ladislav Hagara | Komentářů: 2
23.1. 13:33 | Nová verze

Po sedmi měsících vývoje od vydání verze 5.7 byla vydána verze 5.8 (YouTube) toolkitu Qt. Z novinek lze zmínit například Qt Lite pro vestavěná zařízení. Nově jsou plně podporovány moduly Qt Wayland Compositor (YouTube) a Qt SCXML (YouTube). Současně byla vydána verze 4.2.1 integrovaného vývojového prostředí (IDE) Qt Creator.

Ladislav Hagara | Komentářů: 1
23.1. 11:52 | Pozvánky

Lednový Prague Containers Meetup se koná ve čtvrtek 26. ledna 2017 od 18:00 v Apiary, Pernerova 49, Praha 8. Přijďte se podívat na přednášky o Enterprise Kubernetes a Jenkins as a code.

little-drunk-jesus | Komentářů: 0
23.1. 11:40 | Pozvánky

Program letošního ročníku konference Prague PostgreSQL Developer Days, která se koná již 15. a 16. února 2017 na ČVUT FIT, Thákurova 9, Praha 6, byl dnes zveřejněn. Najdete ho na stránkách konference včetně anotací přednášek a školení. Registrace na konferenci bude otevřena zítra (24. ledna) v brzkých odpoledních hodinách.

TomasVondra | Komentářů: 0
22.1. 02:20 | Zajímavý článek

David Revoy, autor open source webového komiksu Pepper&Carrot nebo portrétu GNU/Linuxu, upozorňuje na svém blogu, že nový Inkscape 0.92 rozbíjí dokumenty vytvořené v předchozích verzích Inkscape. Problém by měl být vyřešen v Inkscape 0.92.2 [reddit].

Ladislav Hagara | Komentářů: 0
22.1. 02:02 | Komunita

Øyvind Kolås, hlavní vývojář grafických knihoven GEGL a babl, které využívá grafický program GIMP, žádá o podporu na Patreonu. Díky ní bude moci pracovat na vývoji na plný úvazek. Milník 1000 $, který by stačil na holé přežití, se již téměř podařilo vybrat, dalším cílem je dosažení 2500 $, které mu umožní běžně fungovat ve společnosti.

xkomczax | Komentářů: 12
21.1. 23:54 | Pozvánky

DevConf.cz 2017, již devátý ročník jedné z největších akcí zaměřených na Linux a open source ve střední Evropě, proběhne od pátku 27. ledna do neděle 29. ledna v prostorách Fakulty informačních technologií Vysokého učení technického v Brně. Na programu je celá řada zajímavých přednášek a workshopů. Letos je povinná registrace.

Ladislav Hagara | Komentářů: 0
21.1. 22:11 | Nová verze

Byla vydána verze 1.0.0 emulátoru terminálu Terminology postaveného nad EFL (Enlightenment Foundation Libraries). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (12%)
 (2%)
 (72%)
 (3%)
 (11%)
Celkem 395 hlasů
 Komentářů: 39, poslední včera 19:30
Rozcestník
Reklama

Dotaz: Bash. Spousteni skriptů na zaklade dostupnosti/nedostupnosti ip adresy

3.12.2007 09:02 Lemmy | skóre: 1 | blog: ctyri_iks
Bash. Spousteni skriptů na zaklade dostupnosti/nedostupnosti ip adresy
Přečteno: 1081×
Ahoj, potreboval bych poradit s jednim skriptem.

Skript by mel provadet nasledujici:

V nastavenem intervalu by mel kontrolovat dostupnost/nedostupnost vybrane ip adresy a na zaklade dostupnosti ci nedostupnosti by mel spustet vybrane skripty.

V pripade dostupnosti ip adresy by skript nic nedelal proste by pokracoval ve sve cinnosti a za urcity casovy interval by provedl kontrolu znovu. V pripade zjisteni nedostupnosti ip adresy by skript mel spustit prikaz A a zase by mel pokracovat v cinnosti. Skript by mel v kazdem prubehu kontrolovat ,jestli ip adresa byla v predchozim prubehu oznacena jako nedostupna. V pripade, ze v predchozim prubehu byla ip adresa nedostupne a v soucasnem prubehu uz dostupna je, skript by mel spustit prikaz B.

V praxi by to melo vypadat tak, ze v pripade vypadku dostupnosti ip adresy, spusti skript prikaz pro nahozeni vpn tunelu a po zjisteni dostupnosti spusti prikaz, ktery vpn tunel zase shodi.

Zaklad skriptu bych si predstavoval takto:
#!/bin/sh
PINGADDR=ver.ej.na.ip
PINGCOUNT=5
SLEEPTIME=60

while [ 1 ]
do
    STATE=`ping -c $PINGCOUNT $PINGADDR| awk 'END{print $4}'`
        
    if [ $STATE == 0 ]; then
      echo "IP je nedostupna"
    else
     echo "IP je dostupna"
    fi
    
    sleep $SLEEPTIME
done
Bohuzel uz nevim jak zajistit kotrolu stavu v predchozim prubehu skriptu.

Idealni by bylo jeste skript rozsirit o kotrolu napriklad ip adresy pro www.google.com a v pripade, ze budou obe ip adresy nedostupne neprovadet nic, protoze velmi pravdepodobne doslo k vypadku pripojeni na strane naseho skriptu.

Diky za nakopnuti spravnym smerem.

Odpovědi

3.12.2007 09:16 Filip Jirsák | skóre: 66 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Bash. Spousteni skriptů na zaklade dostupnosti/nedostupnosti ip adresy
Při zápolení s jednou kvalitní ADSL linkou a kvalitním modemem jsem si napsal následující skript. Bylo to „pro vlastní potřebu“, takže to není žádný zázrak, ale aspoň jako inspirace to snad posloužit může. Opakované spouštění zajišťoval cron.
#!/bin/bash
exec &> /dev/null
sms_file='/var/watchdog/gymnacel.sms'
email_file='/var/watchdog/gymnacel.email'
if ping -nc 3 -i 5 -q -w 60 194.108.202.2
then
        if [ -e $sms_file ]
        then
                rm $sms_file
                echo 'obnoveno' `date` >> /var/log/gymnacel-watchdog.log
        fi
else
        if [ ! -e $sms_file ]
        then
                echo 'vypadek' `date` >> /var/log/gymnacel-watchdog.log
                echo 'From: xxx@example.com' > $email_file
                echo 'Subject: gymnacel nepristupne ' `date` >> $email_file
                echo '' >> $email_file
                echo 'From: xxx@example.com > $sms_file
                echo 'Subject: gymnacel nepristupne ' `date` >> $sms_file
                echo '' >> $sms_file
                ping -nc 1 194.108.202.2 >> $email_file || echo '194.108.202.2 selhal' >> $sms_file
                ping -nc 1 194.108.129.153 >> $email_file || echo '194.108.129.153 selhal' >> $sms_file
                sendmail -f 'yyy@example.com' 'yyy@example.com' < $email_file
                sendmail -f 'yyy@example.com' 'yyy-SMS@example.com' < $sms_file
        fi
fi

3.12.2007 09:37 Lemmy | skóre: 1 | blog: ctyri_iks
Rozbalit Rozbalit vše Re: Bash. Spousteni skriptů na zaklade dostupnosti/nedostupnosti ip ad
Tak sem zkusil zapojit svou sedou kuru mozkovou a dostal sem se nekam sem:
#!/bin/sh

PINGADDR=ver.ej.na.ip
PINGCOUNT=5
SLEEPTIME=60

while [ 1 ]
do
    STATE_IP=`ping -c $PINGCOUNT $PINGADDR| awk 'END{print $4}'`
    
    if [ $STATE_IP == 0 ]; then
      if [ $STATE == 0]; then 
        echo "ip je stale nedostupna. Do nothing."
      else
        echo "IP je nedostupna. Zapinam tunel."
        STATE=0
      fi     
      
    else
      echo "IP je dostupna"
        if [ $STATE == 0 ]; then
          echo "Vypinam tunel"
          STATE=1   
        fi  
    fi
    
    sleep $SLEEPTIME
done
Mohlo by to takhle fungovat ?

Diky za reakce.
3.12.2007 09:46 Tomáš | skóre: 29 | blog: Tomik
Rozbalit Rozbalit vše Re: Bash. Spousteni skriptů na zaklade dostupnosti/nedostupnosti ip adresy
Bohuzel uz nevim jak zajistit kotrolu stavu v predchozim prubehu skriptu.
Pokud to chapu spravne, tak staci pridat jednu promennou a do ni si davat zjisteny stav a v dalsim cyklu si to zase precist.
3.12.2007 10:26 Lemmy | skóre: 1 | blog: ctyri_iks
Rozbalit Rozbalit vše Re: Bash. Spousteni skriptů na zaklade dostupnosti/nedostupnosti ip ad
Tady je uz skoro finalni verze:

#!/bin/sh

PINGADDR=ver.ej.na.ip
GOOGLE=64.233.183.99
PINGCOUNT=1
SLEEPTIME=5

while [ 1 ]
do
    STATE_GOO=`ping -c $PINGCOUNT $GOOGLE|grep transmitted|awk '{print $4}'`
    
    if [ $STATE_GOO -ne 0 ]; then
      echo "Google je dostupny"
      STATE_IP=`ping -c $PINGCOUNT $PINGADDR|grep transmitted|awk '{print $4}'`
        
      if [ $STATE_IP -eq 0 ]; then
      
        if [ $STATE -eq 0 ]; then 
          echo "ip je stale nedostupna. Do nothing."
        else
          echo "IP je nedostupna. Zapinam tunel."
          STATE=0
        fi     
      
      else
        echo "IP je dostupna"
        if [ $STATE -eq 0 ]; then
          echo "Vypinam tunel"   
        fi  
        STATE=1
      fi
    
    fi
    sleep $SLEEPTIME
done
Budu vdecny za jakekoliv konstruktivni pripominky k uvedenemu skriptu.
3.12.2007 13:03 Lemmy | skóre: 1 | blog: ctyri_iks
Rozbalit Rozbalit vše Re: Bash. Spousteni skriptů na zaklade dostupnosti/nedostupnosti ip ad
Tak skript uz vicemene funguje jak ma, ale mam s nim jeste jeden problem.

Kdyz skript spustim, tak nejde zastavit pomoci kill pid, ale musim ho ukoncovat nasilne pomoci kill -9 pid.

Nevedel byste nekdo, jak skript upravit tak, aby sel normalne ukoncit ?

Diky za reakce.
3.12.2007 18:25 Pavel1 | skóre: 33
Rozbalit Rozbalit vše Re: Bash. Spousteni skriptů na zaklade dostupnosti/nedostupnosti ip ad
Jsou 2 varianty (které mě teď napadají), jak skript opakovaně spouštět (v intervalu). Buďto jak to děláš, tzn. že skript bude běžet neustále a čekání se bude dělat uvnitř skriptu příkazem sleep a nebo uděláš jednorázový skriptík, který budeš nejlépe spouštět opakovaně cronem.

Jak to típnout? Zabít celý skript, případně sleep, na kterém to vždy na 99,9% visí.

Tip: Jde si pomoci i externím pomocným souborem, kde pomocí jeho obsahu, nebo případně i přímo existencí tohoto souboru můžeme skript ovlivňovat (ukončit, měnit interval apod.).
3.12.2007 18:39 Pavel1 | skóre: 33
Rozbalit Rozbalit vše Re: Bash. Spousteni skriptů na zaklade dostupnosti/nedostupnosti ip ad
Ještě doplnění, pro to ukončení bych zkusil zjistit, jestli je přítomný proces s tím sleepem, pokud ano, tak ho kilnout. A ve skritu bych sleep upravil na:
    sleep $SLEEPTIM || exit

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.