(Gelöst) Skript beim booten ausführen

Status
Für weitere Antworten geschlossen.

Anselmus

New Member
hi,

bin noch ziemlich unubedarft unterwegs und hätte da ein problem:

ich habe folgenden skript, dass ich gerne beim booten ausführen würde:


Code:
#!/bin/bash

#############################################
# bonds all network devices together as bond0
#############################################

        echo "Bonding devices eth0 to eth3 to bond0"
        /sbin/modprobe bonding mode=0 miimon=100
        /sbin/ifconfig eth0 down
        /sbin/ifconfig eth1 down
        /sbin/ifconfig eth2 down
        /sbin/ifconfig eth3 down
        /sbin/ifconfig bond0 hw ether 00:13:72:F7:97:3f
        /sbin/ifconfig bond0 143.93.78.164 up
        /sbin/ifconfig bond0 netmask 255.255.255.0
        /sbin/ifconfig bond0 mtu 1500
        /sbin/ifenslave bond0 eth0
        /sbin/ifenslave bond0 eth1
        /sbin/ifenslave bond0 eth2
        /sbin/ifenslave bond0 eth3
        /sbin/route add default gw 143.93.78.254
das ganze skript habe ich bonding genannt und nach /etc/init.d kopiert

dann habe ich noch in rc3.d einen link drauf gemacht per ln -s /etc/init.d/bonding S18bonding und einen entsprechenden K18bonding

S18 ist die letzte nummer in der liste...

leider machte er aber nicht was ich will, er hat beim start immer eine andere netzwerkkonfiguration...

von hand ausgeführt funktioniert das skript...

danke für alle tips
anselmus
 

Rain_Maker

Administrator
Teammitglied
AW: skript beim booten ausführen

Zunächst mal das:

http://www.pc-forum24.de/root-forum/2757-code-tags-fuer-anfaenger-und-fortgeschrittene-und-warum-sie-allen-nutzen-bringen.html

=> Bitte erstes Posting dementsprechend abändern.

OnTopic:

Das Script wird so nicht funktionieren, weil ihm der passende Header für ein SuSE-Init-Script fehlt, siehe z.B. (Postings von b3ll3roph0n sind da besonders lesenswert)

http://www.pc-forum24.de/system-konfigurieren/2056-programm-im-runlevel-3-und-5-starten.html?highlight=startscript

Greetz,

RM
 

Anselmus

New Member
AW: skript beim booten ausführen

danke für den tip.

werde es gleich mal probieren. hätte da noch eine frage zu.

muss ich die start, stop und restart in der case-anweisung verarbeiten oder ist das nur der benutzerfreundlichkeit wegen? oder wird beim booten automatisch der abschnitt start aufgerufen?

viele grüße
anselmus
 

Anselmus

New Member
AW: skript beim booten ausführen

mein skript sieht jetzt folgendermaßen aus:

Code:
#!/bin/bash
# /etc/init.d/bonding
#
### BEGIN INIT INFO
# Provides: bonding
# Required-Start:
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start: 3
# Default-Stop:
# Description: Bonds network devices
### END INIT INFO

. /etc/rc.status
rc_reset

echo "Bonding devices eth0 to eth3 to bond0"
/sbin/modprobe bonding mode=0 miimon=100
/sbin/ifconfig eth0 down
/sbin/ifconfig eth1 down
/sbin/ifconfig eth2 down
/sbin/ifconfig eth3 down
/sbin/ifconfig bond0 hw ether 00:13:72:F7:97:3f
/sbin/ifconfig bond0 143.93.78.164 up
/sbin/ifconfig bond0 netmask 255.255.255.0
/sbin/ifconfig bond0 mtu 1500
/sbin/ifenslave bond0 eth0
/sbin/ifenslave bond0 eth1
/sbin/ifenslave bond0 eth2
/sbin/ifenslave bond0 eth3
/sbin/route add default gw 143.93.78.254
leider funktionierts immer noch nicht
 
AW: skript beim booten ausführen

Anselmus schrieb:
muss ich die start, stop und restart in der case-anweisung verarbeiten oder ist das nur der benutzerfreundlichkeit wegen? oder wird beim booten automatisch der abschnitt start aufgerufen?
Ja, die case-Anweisung ist wichtig!
Beim Booten der Init-Script wird
Code:
<scriptname> start
und beim Shurdown
Code:
<scriptname> stop
aufgerufen.

In der Stop-Anweisung musst du das ganze natürlich umgekehrt angeben - also die Interfaces abschalten und das Interface-Bonding lösen.

Ein netter Nebeneffekt ist dann auch, dass du mit
Code:
<scriptname> restart
die Netzverbindung im laufenden Betrieb neustarten kannst.

Außerdem musst du in dem Header auch angeben welche Scripte zuvor gestartet werden sollen.
z.B.:
Code:
# Required-Start:    $local_fs
Wenn keine Dienste angegeben sind, gehen inserv bzw. der YaST-Runlevel-Editor davon, aus, dass das Script ganz zu Beginn des Bootvorgangs ausgeführt werden soll, ohne dass schon andere notwendige Dienste gestartet worden sind.
 

Anselmus

New Member
AW: skript beim booten ausführen

habe das jetzt mal probiert, allerdings passiert leider immer noch nichts... das skript scheint gar nicht ausgeführt zu werden, also zu keinem zeitpunkt...

so sieht es jetzt aus:

Code:
#!/bin/bash
# /etc/init.d/bonding
#
### BEGIN INIT INFO
# Provides: bonding
# Required-Start: $local_fs $network
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start:  2 3
# Default-Stop:
# Description: Bond network devices
### END INIT INFO

. /etc/rc.status
rc_reset

case "$1" in
        start)
        echo "#####################################"
        echo "Bonding devices eth0 to eth3 to bond0"
        /sbin/modprobe bonding mode=0 miimon=100
        /sbin/ifconfig eth0 down
        /sbin/ifconfig eth1 down
        /sbin/ifconfig eth2 down
        /sbin/ifconfig eth3 down
        /sbin/ifconfig bond0 hw ether 00:13:72:F7:97:3f
        /sbin/ifconfig bond0 143.93.78.164 up
        /sbin/ifconfig bond0 netmask 255.255.255.0
        /sbin/ifconfig bond0 mtu 1500
        /sbin/ifenslave bond0 eth0
        /sbin/ifenslave bond0 eth1
        /sbin/ifenslave bond0 eth2
        /sbin/ifenslave bond0 eth3
        /sbin/route add default gw 143.93.78.254
        ;;
        stop)
        echo "Freeing devices eth0 to eth3 from enslavement"
        /sbin/ifenslave -d bond0 eth0
        /sbin/ifenslave -d bond0 eth1
        /sbin/ifenslave -d bond0 eth2
        /sbin/ifenslave -d bond0 eth3
        ;;
        restart)
        echo "Freeing and enslaving network devices"
        ;;
        *)
        echo "usage: bonding start|stop|restart"
        ;;
esac
wenn ich es von hand starte (./bonding start) funktioniert es einwandfrei...
 

Rain_Maker

Administrator
Teammitglied
AW: skript beim booten ausführen

Und wie?

Könnte jemand anderen vielleicht interessieren, der ein ähnliches Vorhaben hat.

Forenregeln schrieb:
12: Sollte euer Problem gelöst sein, so schreibt bitte eine Anmerkung dazu und bitte auch WELCHE Lösung zum Ziel geführt hat. Die Helfer nehmen sich FREIWILLIG die Zeit, euch bei der Lösung eines Problemes zu helfen, also nehmt euch auch die Zeit, Rückmeldung zu geben. Jemand anderes mit dem selben Problem wird das nützen.
Greetz,

RM
 

Anselmus

New Member
AW: skript beim booten ausführen

ich habe das so gemacht:

Code:
# Required-Start: $localfs $network $webmin
damit hats funktioniert
 
Status
Für weitere Antworten geschlossen.
Oben