mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-11-03 04:07:52 +00:00 
			
		
		
		
	These scripts will now be publicly available in a git repo for easier shared development and change tracking.
		
			
				
	
	
		
			102 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
#set -x
 | 
						|
 | 
						|
CIFS_USERNAME="lanforge"
 | 
						|
CIFS_PASSWORD="lanforge"
 | 
						|
NFS_SRV="192.168.100.3"
 | 
						|
NFS_PATH="/mnt/d2"
 | 
						|
CIFS_SRV="192.168.100.3"
 | 
						|
CIF_PATH="/mnt/d2"
 | 
						|
LOCAL_MOUNT_PATH="/mnt"
 | 
						|
NFS_OPTS=""
 | 
						|
 | 
						|
if [ $# -lt 4 ]; then
 | 
						|
  echo "Usage: `basename $0` NFS|CIFS <ethN> <first_mvlan> <last_mvlan> <server server-path local-mnt-path>"
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
 | 
						|
 | 
						|
IF=$2
 | 
						|
MV_START=$3
 | 
						|
MV_STOP=$4
 | 
						|
if [ ! -z "$5" ]
 | 
						|
then
 | 
						|
   NFS_SRV=$5
 | 
						|
   CIFS_SRV=$5
 | 
						|
fi
 | 
						|
 | 
						|
if [ ! -z "$6" ]
 | 
						|
then
 | 
						|
   NFS_PATH=$6
 | 
						|
   CIFS_PATH=$6
 | 
						|
fi
 | 
						|
 | 
						|
if [ ! -z "$7" ]
 | 
						|
then
 | 
						|
   LOCAL_MOUNT_PATH=$7
 | 
						|
fi
 | 
						|
 | 
						|
if [ $1 = "CIFS" ]; then
 | 
						|
   LOCAL_PATH="$LOCAL_MOUNT_PATH/cifs_${IF}#"
 | 
						|
   CIFS_OPTS="username=$CIFS_USERNAME,password=$CIFS_PASSWORD,$CIFS_OPTS"
 | 
						|
else
 | 
						|
   LOCAL_PATH="$LOCAL_MOUNT_PATH/nfs_${IF}#"
 | 
						|
fi
 | 
						|
 | 
						|
LIP=clientaddr
 | 
						|
if uname -a | grep 2.6.20
 | 
						|
then
 | 
						|
	LIP=local_ip
 | 
						|
fi
 | 
						|
 | 
						|
for ((m=MV_START; m <= MV_STOP ; m++))
 | 
						|
do
 | 
						|
  if [ `ifconfig $IF#$m > /dev/null 2>&1; echo $?` -eq "1" ]; then
 | 
						|
    echo "*** MISSING INTERFACE: $IF#$m"
 | 
						|
    echo
 | 
						|
  elif [ `ifconfig $IF#$m | grep "inet addr" > /dev/null; echo $?` -eq "1" ]; then
 | 
						|
    echo "*** MISSING IP ADDRESS ON INTERFACE: $IF#$m"
 | 
						|
  else
 | 
						|
    if [ ! -d "$LOCAL_PATH$m" ]; then
 | 
						|
      echo "mkdir -p $LOCAL_PATH$m"
 | 
						|
      mkdir -p $LOCAL_PATH$m
 | 
						|
    fi
 | 
						|
    IPADDR=`ifconfig $IF#$m | grep "inet addr" | awk -F":" '{ print $2}' |\
 | 
						|
            awk '{ print $1}'`
 | 
						|
    # Ping seems to fail sometimes..probably file-server is under too much load or something
 | 
						|
    # so try the ping up to 5 times.
 | 
						|
    for ((q=0;q<5;q+=1))
 | 
						|
    do
 | 
						|
      if [ `ping -c 1 -w 1 -I $IPADDR $NFS_SRV > /dev/null; echo $?` -eq "0" ]; then
 | 
						|
	q=10; # done
 | 
						|
        if [ $1 = "CIFS" ]; then
 | 
						|
           echo "mount -t cifs -o local_ip=$IPADDR,$CIFS_OPTS //$CIFS_SRV$CIFS_PATH $LOCAL_PATH$m"
 | 
						|
           if [ `mount -t cifs -o local_ip=$IPADDR,$CIFS_OPTS //$CIFS_SRV$CIFS_PATH $LOCAL_PATH$m >\
 | 
						|
                 /dev/null; echo $?` -ne "0" ]; then
 | 
						|
             echo
 | 
						|
           fi
 | 
						|
        else
 | 
						|
           echo "mount -t nfs -o $LIP=$IPADDR,$NFS_OPTS $NFS_SRV:$NFS_PATH $LOCAL_PATH$m"
 | 
						|
           if [ `mount -t nfs -o $LIP=$IPADDR,$NFS_OPTS $NFS_SRV:$NFS_PATH $LOCAL_PATH$m >\
 | 
						|
                 /dev/null; echo $?` -ne "0" ]; then
 | 
						|
             echo
 | 
						|
           fi
 | 
						|
        fi
 | 
						|
      else
 | 
						|
        echo  "*** UNABLE TO PING: $NFS_SRV FROM: $IF#$m, $IPADDR"
 | 
						|
      fi
 | 
						|
    done
 | 
						|
  fi
 | 
						|
done
 | 
						|
echo "********************************************"
 | 
						|
if [ $1 = "CIFS" ]; then
 | 
						|
  echo "Total number of mounts according to 'mount': `mount | grep "$CIFS_SRV$CIFS_PATH" |\
 | 
						|
      grep "$LOCAL_PATH" | grep "type cifs" |\
 | 
						|
      wc | awk '{ print $1 }'`"
 | 
						|
else
 | 
						|
   echo "Total number of NFS mounts according to 'mount': `mount | grep "$NFS_SRV:$NFS_PATH" |\
 | 
						|
      grep "$LOCAL_PATH" | grep -i "type $1" | grep "$LIP=" | grep "addr=$NFS_SRV" |\
 | 
						|
      wc | awk '{ print $1 }'`"
 | 
						|
   echo
 | 
						|
fi
 |