PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Startscript - bitte euch um eure Unterstützung



mslin
11.08.09, 07:38
Hallo,

also nun wage ich mich zum ersten mal an ein Script... wo ich selbst erweitern möchte.

Es wird die Firewall angepasst und eine VPN Brücke erstellt (das habe ich mir aus diversen Anleitungen geholt) und möchte weiter in diesem Script ein paar weitere Programme starten. Soweit klapt das auch ganz gut.

Nun hätte ich aber gerne wenn ich das Script ausführe, daß z.B. wenn der DHCP Server starten soll und es einen Fehler gibt er mir sofort eine Email sendet. Der Emailserver wird über init.d automatisch gestartet.

Denke ich muß da mit if und mail arbeiten?

hier mal mein Code:


#!/bin/bash

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

# Brücke für VPN Verb. erlauben
iptables -A INPUT -i tap0 -j ACCEPT
iptables -A INPUT -i br0 -j ACCEPT
iptables -A FORWARD -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
rcdhcpd start

# Hylafax starten
/usr/lib/fax/faxgetty -D ttyS0
rchylafax start

# Webserver starten
/opt/lampp/lampp start

# VPN-Server starten
rcopenvpn start


Womit muß ich anfrangen um sowas zu realisieren?

Viele Grüße
mslin

buffoon
11.08.09, 09:52
Also ich würde das ungefähr so machen:



OUTPUT=$(rcdhcpd start 2>&1)
if [ $? > 0 ]
echo $OUTPUT | mail -s "DHCP Server not started" e@mail.com
fi


Bitte gründlich prüfen, ist jetzt nur aus dem Kopf raus getippt aber sollte theoretisch so funktionieren.

marce
11.08.09, 10:01
http://www.gnu.org/software/bash/manual/bashref.html#Lists

|| ist dein Freund :-)