#!/bin/bash # Lock the script lockfile /tmp/vservercreator.lock # Read parameters passed to script read TEMP echo $TEMP > /tmp/vservercreator-$$.tmp . /tmp/vservercreator-$$.tmp rm /tmp/vservercreator-$$.tmp # Does the tar file exist? if [ ! -e $VTAR ] then echo "Fatal Error! $VTAR does not exist!" else # Is the vserver name invalid? if [[ ! "$VNAME" =~ '^[a-zA-Z0-9-]{3,20}$' ]] then echo "Fatal Error! '$VNAME' is an invalid vserver name!, The name must be between 3-20 characters long and contain only letters, numebrs and hyphens." else # extract echo "vservercreator.sh -> Extracting $VTAR..." mkdir /tmp/vserver-template-$$ cd /tmp/vserver-template-$$ tar -xf $VTAR # remove config symlinks echo "vservercreator.sh -> Removing old config symlinks..." rm /tmp/vserver-template-$$/etc/vservers/template-vserver/run /tmp/vserver-template-$$/etc/vservers/template-vserver/cache /tmp/vserver-template-$$/etc/vservers/template-vserver/vdir # move to new location echo "vservercreator.sh -> Moving files to their new location..." mv /tmp/vserver-template-$$/etc/vservers/template-vserver /etc/vservers/$VNAME mv /tmp/vserver-template-$$/var/lib/vservers/template-vserver /var/lib/vservers/$VNAME # create config symlinks echo "vservercreator.sh -> Creating the new config symlinks..." ln -s /etc/vservers/.defaults/cachebase/$VNAME /etc/vservers/$VNAME/cache ln -s /var/run/vservers/$VNAME /etc/vservers/$VNAME/run ln -s /var/lib/vservers/$VNAME /etc/vservers/$VNAME/vdir # configure vserver echo "vservercreator.sh -> Configuring the new vserver..." echo $VNAME > /etc/vservers/$VNAME/name echo $VNAME > /etc/vservers/$VNAME/vdir/etc/hostname echo $VNAME.$VDOMAIN > /etc/vservers/$VNAME/uts/nodename echo $VIP > /etc/vservers/$VNAME/interfaces/0/ip echo $VDEV > /etc/vservers/$VNAME/interfaces/0/dev # remove unwanted files echo "vservercreator.sh -> Removing unwanted files..." rm -rf /tmp/vserver-template-$$ rm -f $VTAR cd / if [ "$VSTART" == 1 ] then # start new vserver echo "vservercreator.sh -> Starting the vserver..." vserver $VNAME start 1>/dev/null 2>&1 fi echo "vservercreator.sh -> Success, vserver '$VNAME' created successfully." fi fi # unlock script rm -f /tmp/vservercreator.lock