... GMX kann meine Attachments nicht leiden ... ... dann halt als inline-Kopie : --- snip --- #!/bin/sh ################################################################ # (c) 2003/06/26 by Wolf Ruediger Spielmann # ################################################################ # Aufgabe dieses scripts : # # # # - Aufbau einer SSH-Verbindung zum Citrix-Server (Alice) # # - Prüfen dieser SSH-Verbindung auf eventuelle Abbrüche # # # ################################################################ # Verwendung : # # # # - In einem cronjob wird morgens um 07:00 Uhr ein SSH-Tunnel # # aufgebaut. # # - In regelmäßigen Abständen prüft ein cronjob, ob der # # SSH-Tunnel evtl. bereits abgerissen ist und baut ihn neu # # auf. # ################################################################ VPN_REMOTESERVER=alice.dyndns.biz VPN_REMOTEUSER=bob #Citrix-Server steht bei alice CITRIX_SERVER=192.168.10.7 CITRIX_PORT=1494 IP_LOG=/var/log/vpn_bob2alice_ip.log AWK=/usr/bin/awk DATE=/bin/date GREP=/usr/bin/grep HOST_CMD=/usr/bin/host PING=/bin/ping PS=/bin/ps SSH=/usr/bin/ssh SORT=/bin/sort ################################################################ # Do not edit below this line # ################################################################ OPERATION=$1 PROCESS_NAME=ssh PROCESS_USER=$VPN_REMOTEUSER EXCLUDE1=sshd EXCLUDE2=grep EXCLUDE3=kill establish_vpn_bob2alice () { $SSH -2 -f -N -C -g -L $CITRIX_PORT:$CITRIX_SERVER:$CITRIX_PORT $VPN_REMOTESERVER -l $VPN_REMOTEUSER & } kill_vpn_bob2alice () { PS_COUNT=`$PS -f U $PROCESS_USER | $GREP -v $EXCLUDE1 | $GREP -v $EXCLUDE2 | $GREP -v $EXCLUDE3 | $GREP -i -c $PROCESS_NAME` PID_ARRAY=`$PS -f U $PROCESS_USER | $GREP -v $EXCLUDE1 | $GREP -v $EXCLUDE2 | $GREP -v $EXCLUDE3 | $GREP -i $PROCESS_NAME | $AWK '{print $2}' | $SORT -u` if [ $PS_COUNT -gt 0 ]; then for PID in $PID_ARRAY; do kill -9 $PID done fi } echo_vpn_bob2alice () { PS_COUNT=`$PS -f U $PROCESS_USER | $GREP -v $EXCLUDE1 | $GREP -v $EXCLUDE2 | $GREP -v $EXCLUDE3 | $GREP -i -c $PROCESS_NAME` PID_ARRAY=`$PS -f U $PROCESS_USER | $GREP -v $EXCLUDE1 | $GREP -v $EXCLUDE2 | $GREP -v $EXCLUDE3 | $GREP -i $PROCESS_NAME | $AWK '{print $2}' | $SORT -u` if [ $PS_COUNT -gt 0 ]; then for PID in $PID_ARRAY; do echo "kill -9 $PID" done fi } check_vpn_bob2alice () { CHECK_TIME=`$DATE +"%Y-%m-%d %H:%M:%S"` # hole alte IP von VPN_REMOTESERVER if [ -f $IP_LOG ] ; then . $IP_LOG fi NEW_IP=`$HOST_CMD $VPN_REMOTESERVER | $AWK '{print $4}' | $GREP -e "\."` # Wurde der Remote-VPN-Server gefunden ? if [ -z "$NEW_IP" ]; then kill_vpn_bob2alice echo "OLD_IP=$OLD_IP" > $IP_LOG echo "VPN_KILL_TIME=\"$CHECK_TIME\"" >> $IP_LOG exit 0 fi echo "OLD_IP=$NEW_IP" > $IP_LOG PS_COUNT=`$PS -f U $PROCESS_USER | $GREP -v $EXCLUDE1 | $GREP -v $EXCLUDE2 | $GREP -v $EXCLUDE3 | $GREP -i -c $PROCESS_NAME` RESTART_VPN=no if test "$NEW_IP" != "$OLD_IP" -o $PS_COUNT -le 0 ; then RESTART_VPN=yes fi if [ "$RESTART_VPN" = yes ]; then kill_vpn_bob2alice establish_vpn_bob2alice echo "VPN_START_TIME=\"$CHECK_TIME\"" >> $IP_LOG else echo "VPN_START_TIME=\"$VPN_START_TIME\"" >> $IP_LOG fi echo "VPN_KILL_TIME=\"$VPN_KILL_TIME\"" >> $IP_LOG echo "VPN_CHECK_TIME=\"$CHECK_TIME\"" >> $IP_LOG } case "$OPERATION" in check) check_vpn_bob2alice ;; start) kill_vpn_bob2alice establish_vpn_bob2alice ;; stop) kill_vpn_bob2alice ;; restart) $0 stop $0 start exit 0 ;; probe) echo_vpn_bob2alice ;; *) echo "Usage: $0 {check|start|stop|restart}" exit 1 ;; esac --- snip --- bis denne, Rüdiger -- +++ GMX - die erste Adresse für Mail, Message, More +++ Neu: Preissenkung für MMS und FreeMMS! http://www.gmx.net