Portál AbcLinuxu, 5. listopadu 2025 09:07
/etc/network/if-pre-up.d. V souboru /etc/init.d/networking jsem o něm nenašel ani zmínku. Dopsal jsem si tam tudíž svoji funkci, která ten adresář prochází a spouští všechny skripty v něm, před tím, než dojde na ifup, ale moc systémové řešení to není. A stejně tak jsem v networking nenašel, že by po ifdown procházel /etc/network/if-post-down.d. Možná hledám blbě, ale jisté je, že se skript nakopírovaný do těchto adresářů normálně neprovádí.
Díky za nakopnutí.
Myslím, že je to myšleno takhle:
$ cat /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.190
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
down /etc/network/if-down.d/skript
post-down /etc/network/if-post-down.d/skript
pre-up /etc/network/if-pre-up.d/skript
up /etc/network/if-up.d/skript
Více man interfaces.
Omlouvám se, příklad bude fungovat, ale nevysvětluje to existenci /etc/network/if-*.d. Chcete-li příklad použít zvolte jiné adresáře. Tyto jsou totiž pro příkazy ifup a ifdown.
Když se pro spuštění a vypnutí sítě použijí tyto vysokoúrovňové příkazy, tak se vykonají skripty v těchto adresářích. Konkrétně to udělá program run-parts.
Více man ifup, ifdown, run-parts.
/etc/network/if-pre-up.d jsem umístil skript a po spuštění /etc/init.d/networking restart se tento skript nespustil. Ještě to vyzkouším.
A když se tak pěkně bavíme o konfiguraci sítě v Debianu, tak proč /etc/init.d/networking píše, když najde soubor /etc/network/interfaces, že tato metoda konfigurace je "deprecated"? (Nepamatuju si tu hlášku přesně, sedím teď u widlí v práci) Jaká jiná metoda konfigurace síťových rozhraní v Debianu existuje?
pre-up jmeno_skriptu
(skript jsem umístil do adresáře /etc/network/if-pre-up.d) a při startu sítě to napsalo, že ho nemůže najít. Řešení je zapsat jméno i s cestou. V manuálu se jenom píše, že k těmto volbám (pre-up, up, post-up atd.) existují příslušné adresáře a skripty v nich se spouští pomocí run-parts a to je vše. Automaticky se tedy neprohledávají. To mi ale už nevadí.
Díky za rady.
auto wlan1
iface wlan1 inet static
address 10.16.70.33
netmask 255.255.255.240
broadcast 10.16.70.47
wireless_rate 11M auto
wireless_channel 5
wireless_mode master
wireless_essid mugn-letna-01
wireless_sensitivity 3
wireless_retry 25
wireless_rts 512
wireless_frag 512
wireless_defaultkey 1
fw_secondary /root/prism2/s1.7.4/rf010704.hex
up /sbin/iwpriv wlan1 maccmd 0 && sleep 1
up /sbin/iwpriv wlan1 maccmd 3 && sleep 1
up /sbin/iwpriv wlan1 addmac 00:xx:xx:xx:37:55 && sleep 1
up /sbin/iwpriv wlan1 addmac 00:xx:xx:xx:7a:30 && sleep 1
up /sbin/iwpriv wlan1 addmac 00:xx:xx:xx:7c:55 && sleep 1
up /sbin/iwpriv wlan1 maccmd 1 && sleep 1
v adresarich jsou vetsinou skripty od ruznych balicku ... napr openvpn, hostap ...etc ... nic vam nebrani si tam dat svuj skript, ale pozor ...bude se spoustet pro kazde rozhrani
up i s cestou a mám klid. Proč se nespouštějí skripty v těch adresářích automaticky (jak jsem předpokládal) už neřeším. Ale díky.
Teď jsem to zkoušel a funguje to, jen se nesmí zapomenout na dvě věci.
run-parts ignoruje soubory s příponou (vyzkoušeno na .sh a .pl). Stačí přejmenovat na něco bez přípony a jede to, jak si představuju. Takže příště si pořádně přečtu manuálové stránky, i když zrovna tohle tam je popsáno docela složitým způsobem...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.