ISDN-PPP starten/stoppen


Das folgende Script habe ich im Einsatz. Es kann in ein beliebiges Verzeichnis abgelegt werden und sollte nur noch "executable" gesetzt werden. Es kann dann durch isdnppp start die ISDN Verbidungen freigeben, bzw. mit isdnppp stop diese wieder unterbinden. Ach ja: Nur der Superuser, also "root", kann dieses Script sinnvoll ausfuehren!
#!/bin/bash
if [ "$1" = start ] ; then
	if [ -f /var/lock/isdnppp_users ]; then
		expr `cat /var/lock/isdnppp_users || echo "0"` + 1 > /var/lock/isdnppp_users;
	else
		echo "1" > /var/lock/isdnppp_users;
	fi;
	if [ -f /var/lock/isdnppp ] ; then
		echo "already started at `cat /var/lock/isdnppp`"
		echo -n "You are user #"
		cat /var/lock/isdnppp_users
	else
		echo "Starting ISDN-PPP,"
		echo -n "you are user #"
		cat /var/lock/isdnppp_users
		date > /var/lock/isdnppp
		/sbin/route del default
		/sbin/ipppd
		/sbin/ifconfig ippp0 up
		/sbin/route add default ippp0
		/sbin/ipfwadm -F -p deny
		/sbin/ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0
	fi
elif [ "$1" = stop ] ; then
	expr `cat /var/lock/isdnppp_users || echo "1"` - 1 > /var/lock/isdnppp_users;
	if [ `cat /var/lock/isdnppp_users || echo "0"` -le "0" ]; then
		echo -n "No ISDN users left, "
		echo "hanging up... "
		/sbin/isdnctrl hangup ippp0
		echo "OK"
		echo -n "Bringing ippp0 down... "
		/sbin/ifconfig ippp0 down
		echo "OK"
		/usr/bin/killall -KILL ipppd
		/sbin/ipfwadm -F -p deny
		/sbin/route add -net default gw 192.168.1.254
		rm /var/lock/isdnppp
		rm /var/lock/isdnppp_users
	else
		echo -n "Left ISDN connections: "
		cat /var/lock/isdnppp_users;
	fi
elif [ "$1" = "status" ] ; then
	echo "There are currently" `cat /var/lock/isdnppp_users || echo "0"` "connections."
else
	echo "usage: $0 {start|stop}"
fi

zurück