< Projet src="BLACK_MESA" />

"Working to make a better tomorrow for all mankind"

BLACK_MESA


.TH BLACK_MESA 1
.SH NAME
BLACK_MESA \- Projet en plusieurs étapes qui permettra la migration des anciennes données NetWorker vers NetBackup
.SH SYNOPSIS
.B ./Neverland.sh
[\-N]
[\-\-Neverland]
[\-h]
[\-\-help]
.SH DESCRIPTION ETAPE 1
.B Neverland
Correspond à la première étape de BLACK_MESA : Retire les bandes considérées comme 'inutiles' du robot.
.SH OPTIONS NEVERLAND
.TP
.BR \-N ", " \-\-Neverland
Interroge la base de données BLACK_MESA et trouve les bandes devant être retirées du robot. Une fois trouvées, les bandes sont retirées et placées dans la localisation Neverland.
.TP
.BR \-h ", " \-\-help
Affiche l'aide permettant d'apprendre à utiliser le script Neverland.
								

BLACK_MESA - Lambda_CORE.sh


#!/bin/bash

#               .-;+$XHHHHHHX$+;-.
#            ,;X@@X%/;=----=:/%X@@X/,
#          =$@@%=.              .=+H@X:
#        -XMX:                      =XMX=
#       /@@:     BLΛCK_MESΛ           =H@+
#      %@X,      LAMBDA CORE           .$@$
#     +@X.       Yoann BAUMERT           $@%
#    -@@,                                .@@=
#    %@%                                  +@$
#    H@:                                  :@H
#    H@:         :HHHHHHHHHHHHHHHHHHX,    =@H
#    %@%         ;@M@@@@@@@@@@@@@@@@@H-   +@$
#    =@@,        :@@@@@@@@@@@@@@@@@@@@@= .@@:
#     +@X        :@@@@@@@@@@@@@@@M@@@@@@:%@%
#      $@$,      ;@@@@@@@@@@@@@@@@@M@@@@@@$.
#       +@@HHHHHHH@@@@@@@@@@@@@@@@@@@@@@@+
#        =X@@@@@@@@@@@@@@@@@@@@@@@@@@@@X=
#          :$@@@@@@@@@@@@@@@@@@@M@@@@$:
#            ,;$@@@@@@@@@@@@@@@@@@X/-
#               .-;+$XXHHHHHX$+;-.

################################################################################
########## Test des éléments

if [ $# -gt 2  ]
then

	echo "Nombre d'éléments incorrect."
	exit

fi

################################################################################
########## Valeurs par défaut

origin=0
clone=0
core=0
liste=0

################################################################################

while [ $# != 0 ]
do
	case $1 in
		-o | -O | --Origin | --origin )
			#origin=1
			# Pour réactiver l'option, veuillez décommenter la ligne du dessus ainsi que les lignes "msql" du script
			echo "Pour éviter un nouvel incident de BLACK_MESA, cette option a été désactivée."
			exit
			;;
			
		-c | -C | --Clone | --clone )
			#clone=1
			# Pour réactiver l'option, veuillez décommenter la ligne du dessus ainsi que les lignes "msql" du script
			echo "Pour éviter un nouvel incident de BLACK_MESA, cette option a été désactivée."
			exit
			;;
			
		-u | -U | --Update | --update )
			core=1
			;;
			
		-l | -L | --list | --List )
			#liste=1
			#liste_PATH=$2
			#shift
			echo "Pour éviter un nouvel incident de BLACK_MESA, cette option a été désactivée."
			exit
			;;
			
		-h | --help )
			echo """
           .-;+0XHHHHHHX$+;-.
        ,;X@@X%/;=----=:/%X@@X/,
      =0@@%=.              .=+H@X:
    -XMX:                      =XMX=
   /@@:     BLΛCK_MESΛ           =H@+
  %@X,      Commands HELP         .0@$
 +@X.       Yoann BAUMERT           0@%
-@@,                                .@@=
%@%                                  +@$
H@:                                  :@H
H@:         :HHHHHHHHHHHHHHHHHHX,    =@H
%@%         ;@M@@@@@@@@@@@@@@@@@H-   +@$
=@@,        :@@@@@@@@@@@@@@@@@@@@@= .@@:
 +@X        :@@@@@@@@@@@@@@@M@@@@@@:%@%
  0@$,      ;@@@@@@@@@@@@@@@@@M@@@@@@0.
   +@@HHHHHHH@@@@@@@@@@@@@@@@@@@@@@@+
    =X@@@@@@@@@@@@@@@@@@@@@@@@@@@@X=
      :0@@@@@@@@@@@@@@@@@@@M@@@@$:
        ,;0@@@@@@@@@@@@@@@@@@X/-
           .-;+0XXHHHHHX$+;-.



@@@@@@@@@@@ ---   HELP   --- @@@@@@@@@@



@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@  -o | -O | --Origin | --origin

Option permettant d'ajouter toutes les bandes et anciennes archives originales à la base de données BLACK_MESA

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@  -c | -C | --Clone | --clone

Option permettant d'ajouter toutes les clones de bandes et anciennes archives à la base de données BLACK_MESA

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@  -u | -U | --Update | --update

Option permettant d'ajouter les PATH dans la base de données BLACK_MESA là où il y a des champs vides.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@  -l | -L | --list | --List

Option permettant d'ajouter des bandes sans id et sans ssid depuis un fichier en interrogeant usu.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@  -h | --help

Option d'aide pour le script en question.
			"""
			;;

		* )
			echo "Erreur syntaxique : Faites un -h / --help pour plus d'informations."
			exit
			;;
	esac
	shift
done


################################################################################
################################################################################

if [ $origin -eq 1 ]
then
	################################################################################
	########## Injecter tous les pools originaux dans la base

	mminfo -a -r pool | sort -u | grep -v "Clone$" |
	  while read pool ;
		do
			  mminfo -a -q pool="$pool" -r "volume,ssid,totalsize,volretent"|
				while read volume ssid totalsize retention ;
					  do echo "INSERT INTO MDB_MESA (mesa_media, mesa_ssid, mesa_taille, mesa_retention) VALUES (\"$volume\", \"$ssid\", \"$totalsize\", \"$retention\");" ;
					done |
			  sed '1d' ;
	  done |
	#msql -uadministrateur_mysql -sSRV_MYSQL BLACK_MESA

	################################################################################
	########## Mise à jour prudente des données pouvant contenir des espaces

	mminfo -a -r pool | sort -u | grep -v "Clone$" |
	  while read pool ;
		do
			  mminfo -a -q pool="$pool" -r "volume,ssid,name" | sed 's/\\/\\\\\\\\/g' |
				while read volume ssid path ;
					  do echo "UPDATE MDB_MESA SET mesa_path=\"$path\" WHERE mesa_media=\"$volume\" AND mesa_ssid=\"$ssid\";" ;
					done |
			  sed '1d' ;
	  done |
	#msql -uadministrateur_mysql -sSRV_MYSQL BLACK_MESA


	################################################################################

	mminfo -a -r pool | sort -u | grep -v "Clone$" |
	  while read pool ;
		do
			  mminfo -a -q pool="$pool" -r "volume,ssid,pool" |
				while read volume ssid poule ;
					  do echo "UPDATE MDB_MESA SET mesa_pool=\"$poule\" WHERE mesa_media=\"$volume\" AND mesa_ssid=\"$ssid\";" ;
					done |
			  sed '1d' ;
	  done |
	#msql -uadministrateur_mysql -sSRV_MYSQL BLACK_MESA

	################################################################################

	mminfo -a -r pool | sort -u | grep -v "Clone$" |
	  while read pool ;
		do
			  mminfo -a -q pool="$pool" -r "volume,ssid,location" |
				while read volume ssid localisation ;
					  do echo "UPDATE MDB_MESA SET mesa_localisation=\"$localisation\" WHERE mesa_media=\"$volume\" AND mesa_ssid=\"$ssid\";" ;
					done |
			  sed '1d' ;
	  done |
	#msql -uadministrateur_mysql -sSRV_MYSQL BLACK_MESA

	################################################################################

	mminfo -a -r pool | sort -u | grep -v "Clone$" |
	  while read pool ;
		do
			  mminfo -a -q pool="$pool" -r "volume,ssid,type" |
				while read volume ssid type ;
					  do echo "UPDATE MDB_MESA SET mesa_type=\"$type\" WHERE mesa_media=\"$volume\" AND mesa_ssid=\"$ssid\";" ;
					done |
			  sed '1d' ;
	  done |
	#msql -uadministrateur_mysql -sSRV_MYSQL BLACK_MESA

	exit
fi

################################################################################
################################################################################

if [ $clone -eq 1 ]
then
	################################################################################
	################################################################################

	########## Injecter tous les pools Clones dans la base

	mminfo -a -r pool | sort -u | grep "Clone$" |
	  while read pool ;
		do
			  mminfo -a -q pool="$pool" -r "volume,ssid,totalsize,volretent"|
				while read volume ssid totalsize retention ;
					  do echo "INSERT INTO MDB_BLACK_MESA_EST (mesa_est_media, mesa_est_ssid, mesa_est_taille, mesa_est_retention) VALUES (\"$volume\", \"$ssid\", \"$totalsize\", \"$retention\");" ;
					done |
			  sed '1d' ;
	  done |
	#msql -uadministrateur_mysql -sSRV_MYSQL BLACK_MESA

	################################################################################
	########## Mise à jour prudente des données pouvant contenir des espaces

	mminfo -a -r pool | sort -u | grep "Clone$" |
	  while read pool ;
		do
			  mminfo -a -q pool="$pool" -r "volume,ssid,name" | sed 's/\\/\\\\\\\\/g' |
				while read volume ssid path ;
					  do echo "UPDATE MDB_BLACK_MESA_EST SET mesa_est_path=\"$path\" WHERE mesa_est_media=\"$volume\" AND mesa_est_ssid=\"$ssid\";" ;
					done |
			  sed '1d' ;
	  done |
	#msql -uadministrateur_mysql -sSRV_MYSQL BLACK_MESA


	################################################################################

	mminfo -a -r pool | sort -u | grep "Clone$" |
	  while read pool ;
		do
			  mminfo -a -q pool="$pool" -r "volume,ssid,pool" |
				while read volume ssid poule ;
					  do echo "UPDATE MDB_BLACK_MESA_EST SET mesa_est_pool=\"$poule\" WHERE mesa_est_media=\"$volume\" AND mesa_est_ssid=\"$ssid\";" ;
					done |
			  sed '1d' ;
	  done |
	#msql -uadministrateur_mysql -sSRV_MYSQL BLACK_MESA

	################################################################################

	mminfo -a -r pool | sort -u | grep "Clone$" |
	  while read pool ;
		do
			  mminfo -a -q pool="$pool" -r "volume,ssid,location" |
				while read volume ssid localisation ;
					  do echo "UPDATE MDB_BLACK_MESA_EST SET mesa_est_localisation=\"$localisation\" WHERE mesa_est_media=\"$volume\" AND mesa_est_ssid=\"$ssid\";" ;
					done |
			  sed '1d' ;
	  done |
	#msql -uadministrateur_mysql -sSRV_MYSQL BLACK_MESA

	################################################################################

	mminfo -a -r pool | sort -u | grep "Clone$" |
	  while read pool ;
		do
			  mminfo -a -q pool="$pool" -r "volume,ssid,type" |
				while read volume ssid type ;
					  do echo "UPDATE MDB_BLACK_MESA_EST SET mesa_est_type=\"$type\" WHERE mesa_est_media=\"$volume\" AND mesa_est_ssid=\"$ssid\";" ;
					done |
			  sed '1d' ;
	  done |
	#msql -uadministrateur_mysql -sSRV_MYSQL BLACK_MESA
	
	exit
fi

################################################################################
########## Mise à jour des PATH NULL dans la Base de données BLACK_MESA

echo "Mise à jour de BLACK_MESA..."

if [ $core -eq 1 ]
then

	echo "SELECT mesa_ssid FROM MDB_MESA WHERE mesa_path IS NULL ;" | msql -uadministrateur_mysql -sSRV_MYSQL BLACK_MESA |
	  while read ssid ;
		do
			  mminfo -a -q ssid="$ssid" -r "volume,ssid,name" | sed 's/\\/\\\\\\\\/g' |
				while read volume ssid path ;
					  do echo "UPDATE MDB_MESA SET mesa_path=\"$path\" WHERE mesa_media=\"$volume\" AND mesa_ssid=\"$ssid\";" ;
					done |
			  sed '1d' ;
	  done |
	msql -uadministrateur_mysql -sSRV_MYSQL BLACK_MESA

fi

################################################################################
########## Ajout de bandes sans ssid

if [ $liste -eq 1 ]
then

	cat $liste_PATH |
	while read bande ;
		do pool=`mminfo -a -q volume="$bande" -r "pool"`
		location=`mminfo -a -q volume="$bande" -r "location"`
		echo "INSERT INTO MDB_MESA (mesa_media, mesa_localisation, mesa_pool) VALUES ('$bande', '$location', '$pool');" | msql -uadministrateur_mysql -sSRV_MYSQL BLACK_MESA
	done | grep -v "Clone');$"
	
fi
echo "Fin du script."
								

BLACK_MESA - Neverland.sh


#!/bin/bash

#               .-;+$XHHHHHHX$+;-.
#            ,;X@@X%/;=----=:/%X@@X/,
#          =$@@%=.              .=+H@X:
#        -XMX:                      =XMX=
#       /@@:     BLΛCK_MESΛ           =H@+
#      %@X,      Extraction            .$@$
#     +@X.       Yoann BAUMERT           $@%
#    -@@,                                .@@=
#    %@%                                  +@$
#    H@:                                  :@H
#    H@:         :HHHHHHHHHHHHHHHHHHX,    =@H
#    %@%         ;@M@@@@@@@@@@@@@@@@@H-   +@$
#    =@@,        :@@@@@@@@@@@@@@@@@@@@@= .@@:
#     +@X        :@@@@@@@@@@@@@@@M@@@@@@:%@%
#      $@$,      ;@@@@@@@@@@@@@@@@@M@@@@@@$.
#       +@@HHHHHHH@@@@@@@@@@@@@@@@@@@@@@@+
#        =X@@@@@@@@@@@@@@@@@@@@@@@@@@@@X=
#          :$@@@@@@@@@@@@@@@@@@@M@@@@$:
#            ,;$@@@@@@@@@@@@@@@@@@X/-
#               .-;+$XXHHHHHX$+;-.

################################################################################
################################################################################
########## Test des éléments

if [ $# -gt 1  ]
then

	echo "Nombre d'éléments incorrect."
	exit

fi

########## Valeurs par défaut

Neverland=0

########## Options

while [ $# != 0  ]
do
	case $1 in
		-N | --Neverland | --neverland )
			Neverland=1
			;;

		-h | --help )
			echo """
           .-;+0XHHHHHHX$+;-.
        ,;X@@X%/;=----=:/%X@@X/,
      =0@@%=.              .=+H@X:
    -XMX:                      =XMX=
   /@@:     BLΛCK_MESΛ           =H@+
  %@X,      Commands HELP         .0@$
 +@X.       Yoann BAUMERT           0@%
-@@,                                .@@=
%@%                                  +@$
H@:                                  :@H
H@:         :HHHHHHHHHHHHHHHHHHX,    =@H
%@%         ;@M@@@@@@@@@@@@@@@@@H-   +@$
=@@,        :@@@@@@@@@@@@@@@@@@@@@= .@@:
 +@X        :@@@@@@@@@@@@@@@M@@@@@@:%@%
  0@$,      ;@@@@@@@@@@@@@@@@@M@@@@@@0.
   +@@HHHHHHH@@@@@@@@@@@@@@@@@@@@@@@+
    =X@@@@@@@@@@@@@@@@@@@@@@@@@@@@X=
      :0@@@@@@@@@@@@@@@@@@@M@@@@$:
        ,;0@@@@@@@@@@@@@@@@@@X/-
           .-;+0XXHHHHHX$+;-.



@@@@@@@@@@@ ---   HELP   --- @@@@@@@@@@



@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@  -N | --Neverland

Option permettant de sortir les bandes considérées comme 'inutiles' de l'ancien robot.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@  -h | --help

Option d'aide pour le script en question.
			"""
			;;

		* )
			echo "Erreur syntaxique : Faites un -h / --help pour plus d'informations."
			exit
			;;
	esac
	shift
done

################################################################################
################################################################################
########## Neverland

if [ $Neverland -eq 1 ]
then

########## Initialisation du compteur

	i=0

########## Recherche des bandes à retirer du robot

	liste_media=`echo "SELECT mesa_media FROM MDB_MESA WHERE mesa_localisation=\"L700\" AND mesa_retention=\"expired\" AND mesa_pool not like \"Off%\" GROUP BY mesa_media ;" | /env/cns/opt/mysql/local/msql -N -uadministrateur_mysql -sSRV_MYSQL BLACK_MESA`

	if [ -z $liste_media  ]
	then

		echo "Erreur SQL : La variable liste_media n'obtient aucun retour. Toutes les vieilles bandes sont peut-être déjà parties pour le Neverland..."

	fi

########## Retire 20 bandes et attend une action de l'utilisateur pour retirer les 20 suivantes

	for media in $liste_media
	do
#########################################################################################
		#nsrjb -w $media

		if [ $? -ne 0 ]
		then
			echo "Erreur lors de l'éjection de la bande."
			exit

		else
			echo "Sortie de la bande $media"

#########################################################################################
			#mmlocate -u -n $media Neverland

			if [ $? -ne 0 ]
			then
				echo "Erreur lors de la modification de la localisation de la bande sur NetWorker."
				exit

			else
				echo "Modification de la localisation de la bande $media dans NetWorker."

#########################################################################################
				#echo "UPDATE MDB_MESA SET mesa_localisation=\"Neverland\" WHERE mesa_media=\"$media\";" | /env/cns/opt/mysql/local/msql -N -uadministrateur_mysql -sSRV_MYSQL BLACK_MESA

				if [ $? -ne 0 ]
				then
					echo "Erreur lors de la mise à jour de la base de données pour la bande $media"
					echo "Lancez une des commandes suivantes pour corriger le souci : "
					echo "BASH : echo \"UPDATE MDB_MESA SET mesa_localisation=\\\"Neverland\\\" WHERE mesa_media=\\\"$media\\\";\" | /env/cns/opt/mysql/local/msql -N -ubaumert -sSRV_MYSQL BLACK_MESA"
					echo "MySQL : UPDATE MDB_MESA SET mesa_localisation=\"Neverland\" WHERE mesa_media=\"$media\"; "
					exit

				else
					echo "Modification de la localisation de la bande $media dans la BDD."
				fi
			fi
		fi

#########################################################################################
		# Le compteur sert à limiter à 20 le nombre de bandes expulsées

		i=$((i+1))

		if [ $(( i % 20 )) -eq 0 ]
		then
			read -p "Entrée pour continuer..."
		fi
	done
fi
								

BLACK_MESA - MBM.sh (en cours)


#!/bin/bash

#               .-;+$XHHHHHHX$+;-.
#            ,;X@@X%/;=----=:/%X@@X/,
#          =$@@%=.              .=+H@X:
#        -XMX:                      =XMX=
#       /@@:     BLΛCK_MESΛ           =H@+
#      %@X,      Restauration          .$@$
#     +@X.       Yoann BAUMERT           $@%
#    -@@,                                .@@=
#    %@%                                  +@$
#    H@:                                  :@H
#    H@:         :HHHHHHHHHHHHHHHHHHX,    =@H
#    %@%         ;@M@@@@@@@@@@@@@@@@@H-   +@$
#    =@@,        :@@@@@@@@@@@@@@@@@@@@@= .@@:
#     +@X        :@@@@@@@@@@@@@@@M@@@@@@:%@%
#      $@$,      ;@@@@@@@@@@@@@@@@@M@@@@@@$.
#       +@@HHHHHHH@@@@@@@@@@@@@@@@@@@@@@@+
#        =X@@@@@@@@@@@@@@@@@@@@@@@@@@@@X=
#          :$@@@@@@@@@@@@@@@@@@@M@@@@$:
#            ,;$@@@@@@@@@@@@@@@@@@X/-
#               .-;+$XXHHHHHX$+;-.

#####################################################################################
#####################################################################################
# Valeurs par défaut

taille_max=10995116277760
taille_use=0
Restauration=0
Sauvegarde=0

#####################################################################################
#####################################################################################
# Arguments & tests

if [ $# -gt 1 ] || [ $# -eq 0 ]
then
	echo "Nombre d'arguments incorrect. (-h / --help)"
	exit
fi

#####################################################################################

while [ $# != 0 ]
do
	case $1 in
		-r | -R | --restauration | --Restauration )
			Restauration=1
			;;
		
		-s | -S | --sauvegarde | --Sauvegarde )
			Sauvegarde=1
			;;
		
		##########
		
		-h | --help )
			echo """
           .-;+0XHHHHHHX$+;-.
        ,;X@@X%/;=----=:/%X@@X/,
      =0@@%=.              .=+H@X:
    -XMX:                      =XMX=
   /@@:     BLΛCK_MESΛ           =H@+
  %@X,      Migration             .0@$
 +@X.       Yoann BAUMERT           0@%
-@@,                                .@@=
%@%                                  +@$
H@:                                  :@H
H@:         :HHHHHHHHHHHHHHHHHHX,    =@H
%@%         ;@M@@@@@@@@@@@@@@@@@H-   +@$
=@@,        :@@@@@@@@@@@@@@@@@@@@@= .@@:
 +@X        :@@@@@@@@@@@@@@@M@@@@@@:%@%
  0@$,      ;@@@@@@@@@@@@@@@@@M@@@@@@0.
   +@@HHHHHHH@@@@@@@@@@@@@@@@@@@@@@@+
    =X@@@@@@@@@@@@@@@@@@@@@@@@@@@@X=
      :0@@@@@@@@@@@@@@@@@@@M@@@@$:
        ,;0@@@@@@@@@@@@@@@@@@X/-
           .-;+0XXHHHHHX$+;-.



@@@@@@@@@@@ ---   HELP   --- @@@@@@@@@@



@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@  -r | -R | --restauration | --Restauration (Argument)

Option permettant de lancer la restauration des vieilles archives.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@  -s | -S | --sauvegarde | --Sauvegarde (Argument)

Option permettant de lancer la sauvegarde des archives restaurées et pas encore sauvegardées.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@  -h | --help

Option d'aide pour le script en question.
			"""
			;;
		
		##########
		
		* )
			echo "Erreur syntaxique : Faites un -h / --help pour plus d'informations."
			exit
			;;
	esac
	shift
done


if [ $Restauration -eq 1 ]
then
	#####################################################################################
	#####################################################################################
	# On appelle la requête pour avoir une liste de bandes, de ssid, de paths et de tailles qui nous serviront à l'exécution du script

	infos_ssid=`echo "SELECT mesa_ssid, mesa_taille, mesa_path FROM MDB_MESA WHERE mesa_localisation=\"L700\" AND mesa_check IS NULL AND mesa_ssid IN (SELECT mesa_ssid FROM MDB_MESA GROUP BY mesa_ssid HAVING count(*)>1) GROUP BY mesa_ssid ORDER BY mesa_taille;" | msql -N -uadministrateur_mysql -sSRV_MYSQL BLACK_MESA`

	if [ $? -ne 0 ]
	then
		echo "Erreur SQL : Variable infos_ssid incorrecte."
		exit
	fi
	
	if [ -z "$infos_ssid" ] && [ $? -eq 0 ]
	then
		echo "Tous les ssid situés dans le robot ont été restaurés."
		exit
	fi

	#####################################################################################
	#####################################################################################
	# Pour chaque bande, on va préalablement informer l'utilisateur de la taille du ssid :
	# Si l'espace du volume est insuffisant pour le ssid (au complet), on quitte

	while read ssid taille path
	do
		echo " "
		taille_use=$(($taille_use + $taille))
			
		if [ $taille_use -lt $taille_max ]
		then
			echo "Ajout de $taille octets."
			echo "=> $taille_use octets / $taille_max octets"
			echo " "
			# Si l'espace est suffisant pour le ssid suivant (pour la totalité du ssid) la restauration des ssid commence 
			# Après chaque restauration de ssid, un check est envoyé à la base de données BLACK_MESA
			echo "Restauration du ssid : $ssid"
			#####################################################################################
			if [ $? -ne 0 ]
			then
				echo "Erreur lors de la restauration du ssid $ssid"
				echo "Fin du script"
				exit
			else
				echo "UPDATE MDB_MESA SET mesa_check=1 WHERE mesa_ssid=\"$ssid\" ;"
				#####################################################################################
				if [ $? -ne 0 ]
				then
					echo "Erreur SQL lors de l'envoie du check de restauration du ssid $ssid. (La restauration a bien eu lieu : veuillez mettre à jour la base de données : UPDATE MDB_MESA SET mesa_check=1 WHERE mesa_ssid='$ssid' ;"
					echo "Fin du script"
					exit
				fi
			fi
			# mesa_check = check de restauration
		else
			echo "##########################################################"
			echo "Le volume est complet, arrêt des restaurations."
			echo " "
			exit
		fi
	done <<< "$infos_ssid"
	
fi

if [ $Sauvegarde -eq 1 ]
then
	# Une fois les restaurations terminées, la sauvegarde NetBackup commence
	#####################################################################################
	#####################################################################################

	infos_check=`echo "SELECT mesa_path FROM MDB_MESA WHERE mesa_check=1 AND mesa_ssid_nbu IS NULL AND mesa_path_nbu IS NULL ;" | msql -N -uadministrateur_mysql -sSRV_MYSQL BLACK_MESA`

	if [ $? -ne 0 ]
	then
		echo "Erreur SQL : Variable infos_check incorrecte."
		exit
	fi
	
	if [ -z "$infos_check" ] && [ $? -eq 0 ]
	then
		echo "Aucune sauvegarde à faire."
		exit
	fi

	#####################################################################################

	while read path_nbu
	do
		echo "ArchiveDIR --site CNS $path_NBU"
		if [ $? -ne 0 ]
		then
			echo "Erreur lors de la sauvegarde sur NBU : ArchiveDIR error."
			exit
		else
	# Après chaque sauvegarde de ssid, un nouveau check est envoyé avec le nouveau path du ssid
			echo "Mise à jour de la base de données avec le nouveau ssid NBU et le nouveau path NBU pour $path"
			if [ $? -ne 0 ]
			then
				echo "Erreur lors de la mise à jour des nouvelles informations NBU pour le path $path"
				exit
			fi
		fi
	done <<< "$infos_check"

	# Une fois toutes les sauvegardes terminées, les données sont supprimées par NBU et la base de données BLACK_MESA est mise à jour
fi

								

Structure MySQL


-- MySQL Script generated by MySQL Workbench
-- 06/01/17 11:41:59
-- Model: New Model    Version: 1.0
-- MySQL Workbench Forward Engineering

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';

-- -----------------------------------------------------
-- Schema BLACK_MESA
-- -----------------------------------------------------

-- -----------------------------------------------------
-- Schema BLACK_MESA
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `BLACK_MESA` DEFAULT CHARACTER SET utf8 ;
USE `BLACK_MESA` ;

-- -----------------------------------------------------
-- Table `BLACK_MESA`.`MDB_MESA`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `BLACK_MESA`.`MDB_MESA` (
  `mesa_id` INT NOT NULL AUTO_INCREMENT COMMENT 'Les matériaux anormaux n\'ont rien a voir avec cette base...',
  `mesa_media` VARCHAR(45) CHARACTER SET 'utf8' NULL,
  `mesa_ssid` VARCHAR(100) CHARACTER SET 'utf8' NULL,
  `mesa_taille` BIGINT(8) NULL,
  `mesa_path` MEDIUMTEXT CHARACTER SET 'utf8' NULL,
  `mesa_pool` VARCHAR(45) CHARACTER SET 'utf8' NULL,
  `mesa_localisation` VARCHAR(45) CHARACTER SET 'utf8' NULL,
  `mesa_retention` VARCHAR(25) CHARACTER SET 'utf8' NULL,
  `mesa_type` VARCHAR(45) CHARACTER SET 'utf8' NULL,
  `mesa_check` INT(11) NULL,
  `mesa_ssid_nbu` VARCHAR(45) CHARACTER SET 'utf8' NULL,
  `mesa_path_nbu` MEDIUMTEXT CHARACTER SET 'utf8' NULL,
  PRIMARY KEY (`mesa_id`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `BLACK_MESA`.`MDB_BLACK_MESA_EST`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `BLACK_MESA`.`MDB_BLACK_MESA_EST` (
  `mesa_est_id` INT NOT NULL AUTO_INCREMENT COMMENT 'Ne laissez pas de bestioles dans le micro-ondes !',
  `mesa_est_media` VARCHAR(45) CHARACTER SET 'utf8' NULL,
  `mesa_est_ssid` VARCHAR(100) CHARACTER SET 'utf8' NULL,
  `mesa_est_taille` BIGINT(8) NULL,
  `mesa_est_path` MEDIUMTEXT CHARACTER SET 'utf8' NULL,
  `mesa_est_pool` VARCHAR(45) CHARACTER SET 'utf8' NULL,
  `mesa_est_localisation` VARCHAR(45) CHARACTER SET 'utf8' NULL,
  `mesa_est_retention` VARCHAR(25) CHARACTER SET 'utf8' NULL,
  `mesa_est_type` VARCHAR(45) CHARACTER SET 'utf8' NULL,
  `mesa_est_check` INT(11) NULL,
  `mesa_est_ssid_nbu` VARCHAR(45) CHARACTER SET 'utf8' NULL,
  `mesa_est_path_nbu` MEDIUMTEXT CHARACTER SET 'utf8' NULL,
  PRIMARY KEY (`mesa_est_id`))
ENGINE = InnoDB;


SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;