PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit einem Startscript



mslin
02.11.09, 11:04
Hallo Forum,

habe auf meinem kleinen Serve noch ein Startscript, daß ich derzeit immer noch per hand aufrufe.
Das möchte ich nun ändern und habe auch schon ein bisschen was versucht...

In erster Linie, soll damit eine Brücke für OpenVPN erstellt werden und noch ein paar andere Programme gestartet werden.

Hier das Script:


#!/bin/bash
#

###########################
# Startmeldung des Schripts
###########################

OUTPUT0="Es wurde nach einem Neustart des Servers SRV01-LIN das Startscript ....
Bitte pruee die Logdateien!"
echo $OUTPUT0 | mail -s "Startscript SRV01-LIN Systemmeldung" MAILADRESSE


############################################
# Hier wird erstmal die Firewall eingestellt
############################################
# IP Durchreichen
echo 1 > /proc/sys/net/ipv4/ip_forward

# Bruecke fue VPN Verb. erlauben
iptables -A INPUT -i tap0 -j ACCEPT
iptables -A INPUT -i br0 -j ACCEPT
iptables -A FORWAR -i br0 -j ACCEPT


#############################
# Setzen der Ethernet Brücke
# Tool: bridge-utils
#############################
# Define Bridge Interface
br="br0"

# Define list of TAP interfaces to be bridged,
# for example tap="tap0 tap1 tap2".
tap="tap0"

# Define physical ethernet interface to be bridged
# with TAP interface(s) above.
eth="eth0"
eth_ip="192.168.1.1"
eth_netmask="255.255.255.0"
eth_broadcast="192.168.1.255"
eth_defaultgateway="192.168.1.254"
for t in $tap; do
openvpn --mktun --dev $t
done
brctl addbr $br
brctl addif $br $eth
for t in $tap; do
brctl addif $br $t
done
for t in $tap; do
ifconfig $t 0.0.0.0 promisc up
done
ifconfig $eth 0.0.0.0 promisc up
ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast

route add default gw $eth_defaultgateway

###########################
# Weitere Programme starten
###########################

# dhcp-server starten
OUTPUT1=$(rcdhcpd start 2>&1)
if [ $? -gt 0 ] ; then
echo $OUTPUT1 | mail -s "Startscript SRV01-LIN Fehlermeldung DHCP Server not started" MAILADRESSE
fi

# Webserver starten
OUTPUT4=$(/opt/lampp/lampp start 2>&1)
if [ $? -gt 0 ] ; then
echo $OUTPUT4 | mail -s "Startscript SRV01-LIN Fehlermeldung Apache Server not started" MAILADRESSE
fi

# VPN-Server starten
OUTPUT5=$(rcopenvpn start 2>&1)
if [ $? -gt 0 ] ; then
echo $OUTPUT5 | mail -s "Startscript SRV01-LIN Fehlermeldung VPN Server not started" MAILADRESSE
fi



Nach einem Neustart wird zwar das Script ausgeführt, aber die Brücke wird nicht richtig erstellt.

so solls eigentlich sein:


Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 br0
loopback * 255.0.0.0 U 0 0 0 lo
default 192.168.1.254 0.0.0.0 UG 0 0 0 br0


so ist es - nicht richtig!


Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 br0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 0 0 0 eth0
loopback * 255.0.0.0 U 0 0 0 lo
default speedport.ip 0.0.0.0 UG 0 0 0 eth0


das Script liegt unter /etc/init.d/boot.d/S99startscript1

Warum funktioniert das nicht?
Weis leider da nun nicht mehr weiter...

Vielleicht könnt Ihr mir da weiterhelfen.

Viele Grüße
MsLin

Ragamuffin
02.11.09, 14:26
Was mit auf Anhieb auffällt:

iptables -A FORWAR -i br0 -j ACCEPT
Da fehlt ein "D". Eigentlich hättest du aber hier schon eine Fehlermeldung seitens des Skripts an den Kopf geworfen kriegen müssen, da du wohl kaum eine Chain hast, die so heißt.

Ich würde an deiner Stelle das Skript nochmal genau absuchen nach Tippfehlern.

mslin
02.11.09, 16:29
Hi,

das war wohl ein Kopier-Fehler.

alles richtig im schript geschrieben.

von hand läufts ja auch...

GRuß
MsLin

drcux
02.11.09, 16:55
Wann wird denn dein Skript abgearbeitet? Ist dann vielleicht das Netzwerk noch gar nicht fertig gestartet?

mslin
04.11.09, 06:06
Hi,

ja das wäre eine möglichkeit. Könntest recht haben.

Was für eine Möglichkeit hätte ich den mein Script zu einem späteren Zeitpunkt ausführen zu lassen?

Läuft ja unter boot.d mit startscript1 - soll ich das mal umbenennen auf S99startscript1 ?
würde dasmit später ausgeführt werden ?

oder alternativ i script eine wait-funktion einbauen?

HBtux
04.11.09, 06:56
das Script liegt unter /etc/init.d/boot.d/S99startscript1


Reihe mal den Link zu Deinem Start-Script in den beiden Verzeichnissen /etc/init.d/rc3.d/ und /etc/init.d/rc5.d/ entsprechend ein.

Besser noch, Du verwendest ein entsprechende Grundgerüst eines vorhandenen Start-Script, trägst die Abhängigkeiten zu den anderen Diensten ein und lässt die Links in den Runleveln automatisch per Insserv eintragen....



### BEGIN INIT INFO
# Provides: mein_eigenes_script
# Required-Start: hier die abhängigen Dienste
# Required-Stop: hier die abhängigen Dienste
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 5
# Default-Stop: 0 1 6
# Description: Start von Dienst XY
### END INIT INFO