Script d'auto montage des partages Serveurs

Voici un petit script que j'ai mis dans le répertoire /etc/NetworkManager/dispatcher.d/, et qui porte le joli nom de 06-localmount.

Que fait ce script ?

Il vérifie mon ip afin de déterminer si je suis chez moi (auquel cas il montera les partitions de mon serveur privé) ou ailleur. On peux le personnaliser encore plus pour l'adapter en fonction de ses besoins (montage des partitions du serveur de l'école, du boulot, etc).

Voici le script en question :

#!/bin/bash
#===============================================================#
disconnect() {
   echo "Unmounting Samba mounts"

   types="nfs cifs smbfs"
   for type in ${types}
   do
      mnts=`mount | grep -i mnt | grep -i ${type} | cut -d " " -f3`
      for mnt in ${mnts}
      do
         echo "Unmounting ${mnt}"
         umount ${mnt}
         rmdir  ${mnt}
      done
   done
}

#===============================================================#
getIp() {
   ip=$(/sbin/ifconfig | grep -a1 ${1} | grep inet | cut -d ':' -f2 | cut -d ' ' -f1)
   echo "${ip}"
}
#===============================================================#
isInterfaceActive() {
   ip=$(getIp "${1}")
   if [ "${ip}" != "" ] ; then
      echo "1"
   else
      echo "0"
   fi
}

#===============================================================#
home() {
   /sbin/service iptables stop
   /sbin/service sshd restart

   mounts="192.168.1.1/donnee 192.168.1.1/prive 192.168.1.1/public"
   for mount in ${mounts}
   do
       host=$(echo $mount | cut -d'/' -f1)
       share=$(echo $mount | cut -d'/' -f2)
       if [ ! -d "/mnt/${host}/${share}" ] ; then
          mkdir -p "/mnt/${host}/${share}"
       fi
       mount -t cifs -o credentials=/etc/NetworkManager/credentials,uid=500,gid=500
//${host}/${share} /mnt/${host}/${share}
   done
}

#===============================================================#
nothome() {
   /sbin/service iptables restart
   /sbin/service sshd  stop
}

#===============================================================#
connect() {
   ip=$(getIp "${1}")

   if [ "${ip}" = "192.168.1.2" ] ; then
      home
   else
      nothome
   fi
}

eth="$1"
if [ "$2" = "up" ] ; then
   if [ $(isInterfaceActive "${eth}") -ne 0 ] ; then
       echo "$eth is active. Using it"
       connect "${eth}"
   fi
fi
if [ "$2" = "down" ] ; then
   disconnect
fi

N'oubliez pas le fichier contenant les informations sensibles (Identifiant/Mot de passe), à mettre dans un fichier dit credential. Pour ma part je l'ai mis à cette adresse : /etc/NetworkManager/credentials, et voici sa structure :

username=mon_login
password=mon_pass

Pas d'espaces entre le = !!!

Filed under  //  Development   Scripts   Unix/Linux   auto   dispatcher   localhmount   manager   montage   mount   network   partition   serveur  
Posted by Cyril Nicodème 

Créer une partition et formater un disque sous Linux

Hello :)

Nous allons voir comment créer une partition sous Linux, en ext3.

Tout d'abord, lancez cfdisk :

cfdisk /dev/xxx

avec xxx le nom du disque dur (sda, hda, etc)

Ensuite vous pourrez créer la partition comme vous voulez. Pour du ext3, choisissez le type 85 mais il se peux que vous ayez une erreur de type

cannot change FS type to extended

Si c'est le cas, choisissez le type 83.

Choisissez Ecrire pour enregistrer les modifications, puis quitter. Si le type 85 a fonctionné, vous avez finis, sinon, il faudra faire

mkfs.ext3 /dev/xxx<Y>

avec xxx le nom du disque dur, et Y le numéro de la partition comme indiqué dans cfdisk !

Wala ! c'est gagné !

Aide trouvée à :
http://guymage.net/index.php/2005/09/28/8-creation-partition-ext2-ext3

Filed under  //  Unix/Linux   cfdisk   ext3   format   linux   partition  
Posted by Cyril Nicodème