[Script] Montage automatique des volumes

Autres projets et contributions
Avatar de l’utilisateur
veka
archer
Messages : 141
Inscription : sam. 21 nov. 2009, 11:36

[Script] Montage automatique des volumes

Message par veka »

Salut a tous,

Il m'est arrivé plusieur fois de perdre la fonction de montage automatique des volumes suite a des mises a jours ou des fause manipulation. Aussi je me suis créer un petit script shell tout bete qui va jouer se role.

Je vous le propose car je pense que cela pourait depanné vue le nombre de post sur le forum qui traite de se problème.

mount_auto.sh

Code : Tout sélectionner

#!/bin/bash
#
#	Script de montage automatique des volumes
#
#	Se script monte et demonte les volumes
#
############################# A édité ###############################

	# Choisissez votre methode pour devenir root
	# laisser vide si vous executer le script en root
	suroot="gksudo";

	# Choisissez le dossier oû seront monté les volumes
	cd ~
	
	# Créer un format de nom pour les dossier qui contiendrons les volumes
	dossier="volume_";

#*************************** SECURITE ******************************
#
# Verifier si le script est deja lancé
#
nom=`basename $0`;
if [ `pgrep $nom | wc -l` -lt 3 ]
then
		echo "demarage de mount_auto.sh";
else
		echo "Le script est deja en fonction";
		exit;
fi


#*************************** MONTAGE ******************************

attente=1;
while [ $attente ]
do
	
	#initialisation de l'index
	i=0;

	# boucle qui liste les nouveaux volumes
	for file in $(find /dev/sd* | grep -Ev /dev/sda)
	do
		# Verification que le volume ne soit pas deja monté
		test=`mount | grep -E $file" "`;
		if [ ! -n "$test" ]
		then

			while [ -d $dossier$i ]
			do
				# incrementation de l'index 
				i=`expr $i + 1`;
			done

			# Verification que le dossier n'est pas deja utilisé
			while [ -d $dossier$i ]
			do
				# incrementation de l'index 
				i=`expr $i + 1`;
			done
			
			# Creation du dossier
			mkdir $dossier$i ;

			# Monte le volume
			$suroot "mount -o defaults,rw $file $dossier$i" ;

			# incrementation de l'index 
			i=`expr $i + 1`;
		fi
	done


	#************************** DEMONTAGE *****************************

	# boucle qui liste les volumes monté par le script
	for file in $(mount | grep -E /dev/sd | grep -E $dossier | sed s/on/'$'/ | cut -d$ -f1)
	do
		# Si le volume est absent
		if [ ! -e $file ] 
		then
			# demonte le volume qui a était retiré
			$suroot umount $file;
		fi
	done

	# boucle qui liste les dossier utilisé par le montage des volumes
	for file in $(find $dossier* -maxdepth 0 2>null)
	do
		test=`mount | grep -E /dev/sd | grep -E $file" "`;

		# si le dossier n'est plus utiliser pour monter une partition
		if [ ! -n "$test" ]
		then
			# supprime les dossiers inutiles
			rm -r $file;
		fi
	done

	sleep 1;
done
Je lance se script en tache de fond au demarrage de ma session graphique.

J'espere que cela sera utile a quelqu'un.

PS : je ne desire pas l'améliorer, je veux juste le partager.
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Script] Montage automatique des volumes

Message par benjarobin »

Pour information ceci n'est clairement pas la bonne solution, il y a des outils pour cela avec une bonne gestion des droits...
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Répondre