Portál AbcLinuxu, 1. května 2025 05:06

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
15.4.2012 01:36 Patrik Uhrak | skóre: 31 | blog: pato
Rozbalit Rozbalit vše Re: Doplnok pre Battery Power Supply
Odpovědět | Sbalit | Link | Blokovat | Admin

Toto bude skor fungovat, ako to povodne.

#! /bin/bash

declare IP
declare -i TIME INDEX

IP='192.168.1.1'
TIME=1
INDEX=0

# true mi prijde logickejsie nez zapis [ 1 ], ale oba funguju.
while true; do
        # IP je ip adresa a je vhodnejsi tento zapis pomocou premennej. Ak zmenis na jednom mieste,
        # zmeny sa prejavia vsade a netreba to prehladavat. 
        ping "$IP" -c 1
        # if ping "$IP" -c 1; then   - je tiez sposob, ako zapisat test a zaroven skontrolovat vysledok.
        # vsetko je to ale otazkou preferencii jednotlivca.  
        if [ $? -ne 0 ]; then
                # vzdy navysi hodnotu o 1 rovnako ako INDEX-- zmensi hodnotu $INDEX o 1
                let INDEX++
                # alebo pouzit zapis, kde vykonaju rovnaku ulohu spravne
                #let INDEX=INDEX+1
                #INDEX=$((INDEX+1))
                # atd.
                echo "Ping was not completed successfuly. Left $INDEX tries."
                if [ $INDEX -eq 10 ]; then
                        echo "System is going to shut down now."
                        # v zavislosti na nasteveni daneho systemu, je mozne, ze bude nutne
                        # zadat heslo      
                        # odkomentuj nasledovne pre realne vyuzitie podla tvojich predstav.
                        #shutdown -h now
                fi
        else
                echo "Ping was completed successfuly."
                # nacitame do premennej INDEX hodnotu 0, zapis let INDEX=1 funguje, ale to 
                # by nikto asi takto nezapisal, lebo pouzitie let je uplne zbytocne.
                INDEX=0
        fi
        sleep $TIME;
done 

Ale predsalen by som rad pocul, ake vyuzitie ste nasli, bo nie je tam nic popisane, okrem hw vybavenia.

Ale chvalim urcite, ze ste sa podelili o vase riesenie, aj ked na tom este treba zapracovat. :)

lukve avatar 15.4.2012 10:11 lukve | skóre: 29 | blog: Lukove | Prešov
Rozbalit Rozbalit vše Re: Doplnok pre Battery Power Supply

no dakujem ale vsak je to to iste ako to moje. vyuzitie je jasne ako som napisal aby som vypol "normalne" pocitac ak vypnu prud

linux user more than 20y
15.4.2012 10:18 Patrik Uhrak | skóre: 31 | blog: pato
Rozbalit Rozbalit vše Re: Doplnok pre Battery Power Supply

Ja nevravim, ze nie, zrejme to Vase zbehne rovnako uspesne. ;) Len veci ako let i=0 a podobne su zvlastne.

A je divne, ze mi zrazu aj moj prispevok ukazuje ...

lukve avatar 15.4.2012 10:18 lukve | skóre: 29 | blog: Lukove | Prešov
Rozbalit Rozbalit vše Re: Doplnok pre Battery Power Supply

takze zase som ale o nieco mudrejsi

v podmienk if ak je "-ne" nerovna sa

a ak je v if "-eq" tak je rovna sa

 

dakujem

linux user more than 20y
15.4.2012 10:40 Patrik Uhrak | skóre: 31 | blog: pato
Rozbalit Rozbalit vše Re: Doplnok pre Battery Power Supply

-ne je not equal a teda nerovna sa

-eq je equal a teda rovna sa

a potom su tu -gt, -lt, -ge, -le

Zapis :

if [ $var1 == $var2 ]    # porovnavame retazec ("text")

if [[ $var1 -eq $var2 ]]    # porovnavame cisla, matematicka operacia, v bash-i funguje, ale v sh mam taky dojem, ze nie.

if (( $var1 == $var2 ))  # ako v predchadzajucom pripade, najma ak je iste, ze var1 ako aj var2 su vzdy ciselne hodnoty

 

P.S. : Ten moj druhy pokus je spravny, je tam opravena chyba s poctom ostavajucich pokusov. A kedze tento skript by mal bezat podla vsetkeho na pozadi, tak echo by bolo vhodne nahradit mozno logger -om , aby sme aj vedeli, preco sa system vypol.

P.S.2: Musis nahradit  [ ] za [[ ]] , kde je pouzite -eq -ne a podobne, alebo pouzit prenosny sposob a to (( var1 == var2 )) . Moja chyba. Dalsia na par riadkov. :D

15.4.2012 10:15 Patrik Uhrak | skóre: 31 | blog: pato
Rozbalit Rozbalit vše Re: Doplnok pre Battery Power Supply

Z nejakeho zahadneho dovodu mi neodoslalo prispevok. :)

#! /bin/bash
 
declare IP
# vzdy budu mat TIME, INDEX a MAX_INDEX v tomto pripade ciselnu hodnotu. Napr. TIME='test'; echo $TIME da vysledok 0
declare -i TIME INDEX MAX_INDEX

# globalne premenne, platne pocas celeho behu skriptu a hlavne jednoduche na udrzbu
# aj ked toto je iba par riadkov. 
IP='192.168.1.1'
TIME=1
INDEX=0
MAX_INDEX=10
 
# true mi prijde logickejsie nez zapis [ 1 ], ale oba funguju.
while true; do
        # IP je ip adresa a je vhodnejsi tento zapis pomocou premennej. Ak zmenis na jednom mieste,
        # zmeny sa prejavia vsade a netreba to prehladavat. 
        ping "$IP" -c 1
        # if ping "$IP" -c 1; then   - je tiez sposob, ako zapisat test a zaroven skontrolovat vysledok.
        # vsetko je to ale otazkou preferencii jednotlivca.  
        if [ $? -ne 0 ]; then
                # vzdy navysi hodnotu o 1 rovnako ako INDEX-- zmensi hodnotu $INDEX o 1
                let INDEX++
                # alebo pouzit zapis, kde vykonaju rovnaku ulohu spravne
                #let INDEX=INDEX+1
                #INDEX=$((INDEX+1))
                # atd.
                echo "Ping was not completed successfuly. Left $((MAX_INDEX - INDEX)) tries."
                if [ $INDEX -eq $MAX_INDEX ]; then
                        echo "System is going to shut down now."
                        # v zavislosti na nasteveni daneho systemu, je mozne, ze bude nutne
                        # zadat heslo      
                        # odkomentuj nasledovne pre realne vyuzitie podla tvojich predstav.
                        #shutdown -h now
                fi
        else
                echo "Ping was completed successfuly."
                # nacitame do premennej INDEX hodnotu 0, zapis let INDEX=1 funguje, ale to 
                # by nikto asi takto nezapisal, lebo pouzitie let je uplne zbytocne.
                INDEX=0
        fi
        sleep $TIME;
done

Ale predsalen by som rad pocul, ake vyuzitie ste nasli, bo nie je tam nic popisane, okrem hw vybavenia. O co presne sa snazite.

Ale chvalim urcite, ze ste sa podelili o Vase riesenie, aj ked na tom este treba zapracovat, si myslim. :)

lukve avatar 15.4.2012 12:12 lukve | skóre: 29 | blog: Lukove | Prešov
Rozbalit Rozbalit vše Re: Doplnok pre Battery Power Supply

aj tak to nebudem moct nasadit na fileserver.. sa mi stala taka vec ze mi odisiel USB kluc na ktorom som mal nainstalovany OpenMedia Vault takze mam fileserver docasne nefunkcny :(

linux user more than 20y

Založit nové vláknoNahoru

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

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.