#!/bin/bash #### VARIABILI SCRIPTNAME=`echo $0 | awk -vFS='/' '{print $NF}'` EXEC=/hosthome${PWD#$HOME}${0#'.'} waitfinish() { SEMAPHORE=$1.boot touch $SEMAPHORE while [ -f $SEMAPHORE ]; do sleep 2 done sleep 2 } notifyfinish() { rm $1.boot } r_1=r_1-r1 r_2=r_2-r2 if ! [ `uname -r|tail -c 3` = "um" ]; then # only realhost takes arguments case "$1" in start) ############## CREATE THE HOSTS FROM SCRATCH if [ -e $r_1.disk ] || [ -e $r_2.disk ] ; then echo "$0: some .disk file exists in this directory!" echo " launch "$0 clean" first" exit 1 fi vstart $r_1 --eth0=A --eth1=B --new --exec=$EXEC waitfinish $r_1 vstart $r_2 --eth1=B --eth0=C --new --exec=$EXEC waitfinish $r_2 ;; restart) ############## CREATE THE HOSTS FROM SCRATCH if [ -e $r_1.disk ] || [ -e $r_2.disk ] ; then echo "$0: some .disk file does not exist!" echo " launch "$0 start" instead" exit 1 fi vstart $r_1 --eth0=A --eth1=B --exec=$EXEC waitfinish $r_1 vstart $r_2 --eth1=B --eth0=C --exec=$EXEC waitfinish $r_2 ;; halt) vhalt $r_1 & vhalt $r_2 & ;; crash) vcrash $r_1 & vcrash $r_2 & ;; clean) rm -f $r_1.disk rm -f $r_2.disk ;; *) echo "Usage:$0 {start | halt | restart | crash | clean}" exit 1 ;; esac else # not realhost (virtual host to configure, does not take arguments) SCRIPTFILE=`cat /proc/cmdline | awk -v FS== -v RS=' ' '{if($1=="exec") print $2}' ` SCRIPTDIR=${SCRIPTFILE%/${SCRIPTNAME}} cd $SCRIPTDIR if [ $HOSTNAME = $r_1 ]; then /sbin/ifconfig eth0 195.14.10.1 netmask 255.255.255.0 up /sbin/ifconfig eth1 193.10.11.1 netmask 255.255.255.252 up ## NORIP ## OKBGP cat > /etc/zebra/bgpd.conf < /etc/zebra/daemons < /etc/zebra/bgpd.conf < /etc/zebra/daemons <