1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
#! /bin/ksh
echo " --------------------------------------"
echo " | |"
echo " | Procédure de changement de serveur |"
echo " | |"
echo " --------------------------------------"
cd /etc
if [ -f hosts ]; then
# Sauvegarde du fichier hosts en hosts.old:
cp hosts hosts.old
if [ -f hosts.old ]; then
# Le fichier host.old a bien été créé
# Récupération du serveur actif:
svr_old=`gawk -F" " '{if ($3 == "svrrx300") print $2}' hosts`
echo "Le serveur actuel est $svr_old"
echo "------------------------------"
typeset -i rang=0
typeset -i choix_svr=999
typeset nom
echo "Les serveurs potentiels sont:"
gawk -F" " '{if ($3 == "#svrrx300") print $2;}' hosts |
while read name
do
echo $rang" : "$name
nom[rang]=$name
rang=rang+1
done
echo "------------------------------"
# Demande à l'utilisateur:
echo "Choisissez parmi ces derniers quel serveur vous désirez utiliser"
echo "(Entrer le numéro correspondant au serveur, se situant devant son nom)"
read choix_svr
echo "------------------------------"
echo "Vous avez choisi le serveur numéro $choix_svr"
echo "Soit le serveur nommé " ${nom[choix_svr]}
echo "------------------------------"
echo "Tests en cours"
if [ $choix_svr -gt rang ]; then
# L'utilisateur n'a pas entré un numéro valide
echo "------------------------------"
echo "Le numéro que vous avez entré n'est pas valide"
echo "Le changement de serveur n'est pas possible"
else
# Le numéro entré par l'utilisateur est valide.
# On teste l'accessibilité du serveur:
/bin/ping -c 1 ${nom[choix_svr]}
if [ $? = 0 ]; then
# On démonte les répertoires de /DATA situés sur l'ancien serveur:
sudo /bin/umount /DATA/INSPECTION
sudo /bin/umount /DATA/SAPHIR
sudo /bin/umount /DATA/CIVAMIS
sudo /bin/umount /DATA/IMAGES
sudo /bin/umount /DATA/CHANFREINS
sudo /bin/umount /DATA/TRAMES
# On ajoute un # devant l'ancien serveur et on enlève celui devant le nouveau:
cat hosts | sed -r -e "
/$svr_old/{
s/(svrrx300)/#\1/
}
/${nom[$choix_svr]}/{
s/#(svrrx300)/\1/
}" > hosts.new
mv hosts.new hosts
# On remonte les répertoires de /DATA sur le nouveau serveur:
sudo /bin/mount /DATA/INSPECTION
sudo /bin/mount /DATA/SAPHIR
sudo /bin/mount /DATA/CIVAMIS
sudo /bin/mount /DATA/IMAGES
sudo /bin/mount /DATA/CHANFREINS
sudo /bin/mount /DATA/TRAMES
# On indique à l'utilisateur que le changement de serveur est effectif
echo "------------------------------"
echo "Le nouveau serveur est `gawk -F" " '{if ($3 == "svrrx300") print $2}' hosts`"
else
echo "------------------------------"
echo "Le serveur choisi n'est pas actuellement connecté"
echo "Le changement de serveur n'est pas possible"
fi
fi
else
# Le dossier est protégé en criture ou il n'y a plus de place
echo "------------------------------"
echo "Echec de création du fichier .old"
echo "Le changement de serveur n'est pas possible"
fi
else
# Le fichier n'existe pas ( pas dans le bon répertoire?!)
echo "------------------------------"
echo "Fichier hosts non trouvé"
echo "Le changement de serveur n'est pas possible"
fi |