next up previous contents
Next: dhcpdgen.sh Up: Scripts di usability Previous: maketemplate.sh   Indice

makenode.sh

#!/bin/bash

if [ $# != 1 ] ; then
   echo "Usage: $0 [Node name]"
   exit 1
fi

. cluster.conf

NODEDIR=$TFTPDIR/$1
TEMPDIR=$TFTPDIR/template

if [ ! -d $TEMPDIR ] ; then
  echo "Don't find template directory in $TEMPDIR!"
  exit 1
fi

NAME=$( cat $DHCP | grep $1 | awk {'print $2'} )
if [ -z $NAME ] ; then
  echo "Don't find entry in $DHCP for $1!"
  exit 1
fi

if [ ! -d $NODEDIR ] ; then
  echo -n "Create root directory for $i in $NODEDIR..." 
  /bin/mkdir $NODEDIR
else
  echo "Node $1 already exists!"
  exit 1
fi
echo 

echo "Copy filesystem::"
for i in dev etc var; do 
  echo -n "     /$i"
  /bin/cp -Ra $TEMPDIR/$i $NODEDIR
  echo
done

echo "Make hard links for:"
for i in bin sbin lib ; do
  echo -n "     /$i: "
  ( cd $TEMPDIR; /usr/bin/find $i -print | cpio -pl $NODEDIR )
done

echo "Make directories:"
for i in proc tmp mnt home root usr data; do
  echo -n "     /$i"
  /bin/mkdir $NODEDIR/$i
  echo
done
echo
echo "Configure /tmp..."
/bin/chmod 1777 $NODEDIR/tmp/
echo "Configure /data..."
/bin/chmod 1777 $NODEDIR/data/

echo "Configure fastboot..."
touch $NODEDIR/fastboot
chattr +i $NODEDIR/fastboot

echo "Done."
exit 0



Mario Cavicchi 2004-07-22