Portál AbcLinuxu, 14. července 2025 18:09


Dotaz: Roura během spouštění systému

MaSo avatar 24.2.2007 19:58 MaSo | skóre: 15 | blog: MaSo | Frýdek-Místek
Roura během spouštění systému
Přečteno: 157×
Odpovědět | Admin
Prosím o radu, jak mám vytvořit rouru, aby fungovala i během spouštění systému, konkrétně je ve skriptu spuštěném "rc.local" (S89local) a je ve skriptu pro iptables (wall). Potřebuji vytáhnout z názvu rozhraní (ethx, ...) IP adresu. Kolona je následující:

INTIP3=`ifconfig $INTIF3 |/bin/grep 'inet adr\:' |/bin/sed -e 's/:/ /' |/usr/bin/gawk '{print$3}'`

kde proměnná INTIF3 obsahuje "eth3"

Tohle normálně funguje, jen během spouštění ne. Hledal jsem na netu a bez výsledků (asi špatně), prosím o pomoc.

Debian k. 2.6.8-3
Webové síťové nástroje: http://nettools.mzettik.cz (pracuje se na tom - pomalu :-) )
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

24.2.2007 20:07 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Roura během spouštění systému
Odpovědět | | Sbalit | Link | Blokovat | Admin
Asi proto že není nastavená cesta k programu ifconfig :-)

1.) Je zastaralý!

2.) Bez cesty ho bash asi nenajde.
MaSo avatar 24.2.2007 20:17 MaSo | skóre: 15 | blog: MaSo | Frýdek-Místek
Rozbalit Rozbalit vše Re: Roura během spouštění systému
ifconfigem to není ;-)
tak jinak, mám udělaný i ladící skript:

intif2_1=`/sbin/ifconfig $INTIF2`
echo $intif2_1 ;echo
intif2_2=`/bin/echo -e "$intif2_1" |/bin/grep 'inet adr\:'`
echo $intif2_2 ;echo
intif2_3=`/bin/echo $intif2_2 |/bin/sed -e 's/:/ /'`
echo $intif2_3 ;echo
INTIP2=`/bin/echo $intif2_3 |/usr/bin/gawk '{print$3}'`
echo $INTIP2 ;echo

1. echo je ok (vypíše ethx kompletně)
2. zbytek už ne (intif2_2 je již prázdný)
Webové síťové nástroje: http://nettools.mzettik.cz (pracuje se na tom - pomalu :-) )
24.2.2007 20:30 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Roura během spouštění systému
  ip addr show dev eth0 | sed -nre '/^ *inet / {s_^ *inet +([0-9.]*)/.*_\1_;p}'

Funguje i pro více adres (cesty si doplňte sám podle toho, jak je máte).

Mimochodem, hint k vašemu problému: zkuste si porovnat výstup těchto dvou příkazů:

  ifconfig
  LC_ALL=C ifconfig
MaSo avatar 24.2.2007 21:06 MaSo | skóre: 15 | blog: MaSo | Frýdek-Místek
Rozbalit Rozbalit vše Re: Roura během spouštění systému
Kdy se uplatňuje (nebo zavádí, nebo jak to říct) LC_ALL? :-D
Netušil jsem, že v tomto stádiu spouštění je ještě vše anglicky :-D
Mnohokrát děkuji.
Nejdříve jsem použil tu kolonu a ta šla, jak měla, hmm. V čem to? A pak co myslíte tím LC_ALL??? :-O A je to "adr" vs. "addr" :-D

Ještě jsem nechápal spuštění typu: LC_ALL=C ifconfig

Ještě jednou moc děkuji za pomoc :-)
Webové síťové nástroje: http://nettools.mzettik.cz (pracuje se na tom - pomalu :-) )

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.