Portál AbcLinuxu, 11. května 2024 03:12


Dotaz: Jak ve skriptu zjistit, že ethernet jede

18.6.2010 10:36 pavel
Jak ve skriptu zjistit, že ethernet jede
Přečteno: 312×
Odpovědět | Admin
Dobrý den, potřeboval bych ve Bash-skriptu zjistit, jestli je funkční ethernet. V této chvíli to řeším pomocí:
#Pokud nejede ethernet, preskoc na konec skriptu (pred done)
if ! sudo ping "$ipclient" -c 2 -W3 >/dev/null 2>&1
  then
     echo "$cas2 Sit nejede." >>"$mylog"
     continue
fi
ipclient je moje adresa 192.168.x.x.

Existují i nějaké jiné způsoby (ne ifconfig)?

Řešení dotazu:


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

Odpovědi

18.6.2010 10:56 MX
Rozbalit Rozbalit vše Re: Jak ve skriptu zjistit, že ethernet jede
Odpovědět | | Sbalit | Link | Blokovat | Admin
co treba /sys/class/net/eth0/carrier ?
18.6.2010 13:21 pavel
Rozbalit Rozbalit vše Re: Jak ve skriptu zjistit, že ethernet jede
Díky, přesně toto jsem hledal.
18.6.2010 13:23 wolf09
Rozbalit Rozbalit vše Re: Jak ve skriptu zjistit, že ethernet jede
Odpovědět | | Sbalit | Link | Blokovat | Admin
ip link ?
18.6.2010 21:57 JF | skóre: 23
Rozbalit Rozbalit vše Re: Jak ve skriptu zjistit, že ethernet jede
Odpovědět | | Sbalit | Link | Blokovat | Admin
A co treba takovy ping?
/bin/ping 10.25.9.225 -c 2 >/dev/null 2>&1
T1="$?"

if [ "$T1" = "0" ]; then
 /usr/bin/echo "ZPnet connection OK [10.25.9.225]
" /bin/ping www.seznam.cz -c 2 -I eth3 >/dev/null 2>&1 T6="$?" if [ "$T6" != "0" ]; then /bin/ping www.google.com -c 2 -I eth3 >/dev/null 2>&1 T6="$?" fi if [ "$T6" != "0" ]; then /usr/bin/echo "ZPnet does not route packets to internet!
" fi else /usr/bin/echo "ZPnet connection failed [10.25.9.225]
" /bin/ping 192.168.104.3 -c 2 >/dev/null 2>&1 T2="$?" /bin/ping 192.168.104.2 -c 2 >/dev/null 2>&1 T3="$?" if [ "$T2" = "0" ]; then /usr/bin/echo "WiFi client OK [192.168.104.3]
" else /usr/bin/echo "WiFi client failed [192.168.104.3]
" fi if [ "$T3" = "0" ]; then /usr/bin/echo "ZP AP OK [192.168.104.2]
" else /usr/bin/echo "ZP AP failed [192.168.104.2]
" fi ping 10.25.9.225 -I wlan1 -c 2 >/dev/null 2>&1 T7="$?" if [ "$T7" = "0" ]; then /usr/bin/echo "But ZPnet [10.25.9.225] is reachable through czfree!
" fi fi
19.6.2010 16:44 pavel
Rozbalit Rozbalit vše Re: Jak ve skriptu zjistit, že ethernet jede
Díky za příspěvek, svůj problém ale považuji za vyřešený pomocí /sys/class/net/eth0/carrier.

Nechci provádět ping (moje původní řešení) ani na interní, ani na externí adresy. PC mohou mít výpadek, a nezdá se mi dobrý nápad ping každou minutu na nějaký počítač - kdyby tento nápad použilo více llidí, byl by z toho docela pěkný DOS (DDOS) ...

Navíc ping na moji IP-adresu by ve skriptu fungoval jen v případě spuštěné služby (daemona) net-plug (není to přesný název služby), která automaticky připojuje nebo odpojuje sít (viz ikonka v v taskbaru).

Hledal (a našel) jsem tedy "čistší" řešení, za které děkuji.

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.