#!/bin/sh
echo "******************************************************************"
echo
"*
*"
echo "* Script de Migration des modules existants vers *"
echo "* la nouvelle instance de
LDAP *"
echo
"*
*"
echo
"*
*"
echo "* Auteur: Wissem MEDIOUNI <Wissem5@yahoo.fr> *"
echo "******************************************************************"
echo "\n\nLa vérification de vos données est en cours ..."
if [ $# -gt 2 -o $# -lt 2 ]
then
echo "\nErreur de paramètres !!"
echo "réessayer avec cette syntaxe: $0 <Server's IP Adress> <Bind's Password> "
exit 3
fi
adress=$1
passwd=$2
ping -c 2 $adress 2>&1 > null
if [ $? -ne 0 ]
then
echo "\nErreur de paramètres !! L'adresse du serveur OpenLDAP entré n'est pas en service !!"
echo "réessayer avec cette syntaxe: $0 <Server's IP Adress> <Bind's Password> "
exit 3
fi
ldapsearch -h $adress -x -D "cn=Manager,dc=scom,dc=company" -w $passwd -b "ou=group,dc=scom,dc=company" 'cn=*_cdp' dn 2>&1 > null
retresultat=$?
case $retresultat in
255) echo "\nVérifiez que l'adresse du serveur OpenLDAP est correcte"
echo "La syntaxe: $0 <Server's IP Adress> <Bind's Password> "
exit 2
;;
49) echo "\nVérifiez que le mot de passe du Bind est correct"
echo "La syntaxe: $0 <Server's IP Adress> <Bind's Password> "
exit 2
;;
0) echo "\n\nVos entrées sont valides !\n\n"
;;
*) echo "\nvérifiez que vos données sont correctes!"
exit 2
;;
esac
echo " --------------> Choisir une Option: 1 ou 2 ou 3 <--------------- "
echo "
-
- "
echo " - 1-Script Running 2-Help
3-Exit - "
echo "
-
- "
echo " ---------------------------------------------------------------- \n"
read nombre
case $nombre in
1) echo "\nVous avez choisi de démarrer le script"
;;
2) echo "\nVous avez choisi le menu d'Aide !"
echo "Ceci est le Script de Migration des modules existants vers"
echo "la nouvelle instance de LDAP."
echo ' ____________________________________________________________________________ '
echo '|
AVANT
|
APRES |'
echo '|____________________________________|_______________________________________|'
echo
'|
|
|'
echo '|
dc=scom |
dc=scom |'
echo '|
|
|
| |'
echo '| dc=company
| dc=company |'
echo '| / |
\ | /
| \ |'
echo '| / |
\ | /
| \ |'
echo '| / |
\ | /
| \ |'
echo '| ou=people ou=group ou=replicator | ou=people ou=group ou=replicator |'
echo '| / |
\ | /
| \ |'
echo '| / |
\ | /
| \ |'
echo '| / |
\ | /
| \ |'
echo '| / |
\ | /
| \ |'
echo '| forgeName
| forgeName |'
echo '|
|
|
| |'
echo '| -------------------------- |
------------------------ |'
echo '| | | | | |
| | |
| |'
echo '|cn=*_cdp ................ cn=*_dev | ... ou=ModuleName ... |'
echo
'|
| ---------------------------- |'
echo
'|
| | | | | | |'
echo
'|
| cn=*_cdp .... ..... .... cn=*_dev |'
echo '|____________________________________|_______________________________________|'
echo "\nPour démarrer le Script --> Tapez <1> Pour quitter le Programme --> Tapez <3>"
read nombre
case $nombre in
1) echo "\nVous avez choisi de démarrer le script"
;;
3) echo "Vous avez choisi de sortir !"
exit 3
;;
*) echo "Erreur de paramètres !"
echo "Pour Choisir une option, tapez <1> ou <3>"
read nombre
while [ $nombre -ne 1 -a $nombre -ne 3 ]
do
echo "Erreur de paramètres !"
echo "Pour Choisir une option, tapez <1> ou <3>"
read nombre
done
if [ $nombre -eq 3 ]
then
echo "Vous avez choisi de sortir !"
exit 3
else
echo "\nVous avez choisi de démarrer le script"
fi
;;
esac
;;
3) echo "Vous avez choisi de sortir !"
exit 3
;;
*) echo "Erreur de paramètres !"
echo "Pour Choisir une option, tapez <1> ou <2> ou <3>"
read nombre
case $nombre in
1) echo "\nVous avez choisi de démarrer le script"
;;
2) echo "\nVous avez choisi le menu d'Aide !"
echo "Ceci est le Script de Migration des modules existants vers"
echo "la nouvelle instance de LDAP."
echo ' ____________________________________________________________________________ '
echo '|
AVANT
|
APRES |'
echo '|____________________________________|_______________________________________|'
echo
'|
|
|'
echo '|
dc=scom |
dc=scom |'
echo '|
|
|
| |'
echo '|
dc=company |
dc=company |'
echo '| / |
\ | /
| \ |'
echo '| / |
\ | /
| \ |'
echo '| / |
\ | /
| \ |'
echo '| ou=people ou=group ou=replicator | ou=people ou=group ou=replicator |'
echo '| / |
\ | /
| \ |'
echo '| / |
\ | /
| \ |'
echo '| / |
\ | /
| \ |'
echo '| / |
\ | /
| \ |'
echo '|
forgeName |
forgeName |'
echo '|
|
|
| |'
echo '| -------------------------- |
------------------------ |'
echo '| | | |
| | | |
| | |'
echo '|cn=*_cdp ................ cn=*_dev | ... ou=ModuleName
... |'
echo
'|
| ---------------------------- |'
echo
'|
| | | | | | |'
echo
'|
| cn=*_cdp .... ..... .... cn=*_dev |'
echo '|____________________________________|_______________________________________|'
echo "Pour démarrer le Script --> Tapez <1> Pour quitter le Programme --> Tapez
<3>"
read nombre
case $nombre in
1) echo "\nVous avez choisi de démarrer le script"
;;
3) echo "Vous avez choisi de sortir !"
exit 3
;;
*) echo "Erreur de paramètres !"
echo "Pour Choisir une option, tapez <1> ou <3>"
read nombre
while [ $nombre -ne 1 -a $nombre -ne 3 ]
do
echo "Erreur de paramètres !"
echo "Pour Choisir une option, tapez <1> ou <3>"
read nombre
done
if [ $nombre -eq 3 ]
then
echo "Vous avez choisi
de sortir !"
exit 3
else
echo "\nVous avez
choisi de démarrer le script"
fi
;;
esac
;;
3) echo "Vous avez choisi de sortir !"
exit 3
;;
*) echo "Erreur de paramètres !"
echo "Pour Choisir une option, tapez <1> ou <3>"
read nombre
while [ $nombre -ne 1 -a $nombre -ne 3 ]
do
echo "Erreur de paramètres !"
echo "Pour Choisir une option, tapez <1> ou <3>"
read nombre
done
if [ $nombre -eq 3 ]
then
echo "Vous avez choisi de sortir !"
exit 3
else
echo "\nVous avez choisi de démarrer le script"
fi
;;
esac
;;
esac
echo "Veuillez entrer le Nom de la forge en question: \n"
read frg bidon
while [ $frg != "forge-wissem01" -a $frg != "forge-wissem02" -a $frg != "forge-wissem03" -a $frg != "forge-wissem04" -a $frg != "forge-wissem05" -a $frg
!= "forge-wissem06" -a $frg != "forge-wissem07" -a $frg != "forge-wissem08" -a $frg != "forge-wissem09" -a $frg != "forge-wissem10" -a $frg != "forge-wissem11" -a $frg != "forge-wissem12" -a $frg
!= "forge-wissem13" -a $frg != "forge-wissem14" -a $frg != "forge-wissem15" -a $frg != "forge-wissem16" -a $frg != "forge-wissem17" -a $frg != "forge-wissem18" -a $frg != "forges-wissem19" -a
$frg != "forge-wissem20" ]
do
echo "\nNom de Forge erroné !"
echo "vous devez Choisir Une forge de la liste:"
echo ' ___________________________________________________________________________________ '
echo '| forge-wissem01 | forge-wissem02 | forge-wissem03 |
forge-wissem04 | forge-wissem05 |'
echo '|________________|______________|________________|________________|_________________|'
echo '| forge-wissem06 | forge-wissem07 | forge-wissem08 | forge-wissem09
| forge-wissem10 |'
echo '|________________|______________|________________|________________|_________________|'
echo '| forge-wissem11 | forge-wissem12 | forge-wissem13 | forge-wissem14
| forges-wissem15 |'
echo '|________________|______________|________________|________________|_________________|'
echo '| forge-wissem16 | forge-wissem17 | forge-wissem18 | forge-wissem19 |
forge-wissem20 |'
echo '|________________|______________|________________|________________|_________________|'
echo "\n"
read frg bidon
done
echo "\nLa forge choisie est $frg \n"
echo "\n<Attention:> vous êtes sur le point d'éxécuter un script, qui aura comme impact, des modifications"
echo "importantes dans l'arborescence des composants de la $frg sous le serveur OpenLDAP."
echo "\nSi vous voulez continuer, tapez <o/O/oui>, ou n'importe quelle touche pour quitter."
read reponse
case $reponse in
o|O|oui)
echo "\nVous avez choisi de continuer, le traitement est en cours !"
;;
*)
echo "Vous quitter le programme !"
exit 3
;;
esac
echo "\nRecherche des modules susceptibles d'être modifiés !"
ldapsearch -h $adress -x -b "forgeName=$frg,ou=group,dc=scom,dc=company" 'cn=*_cdp' dn | grep '^dn: ' | egrep -iv -e '_cdp1,ou=' -e '_cdp,ou='| sed -e 's/dn: cn=//' -e 's/_cdp,.*//' |
(while read x; do echo "dn: ou=$x,forgeName=$frg,ou=group,dc=scom,dc=company"; echo "objectClass: organizationalUnit"; echo "ou: $x"; echo ; done) > /tmp/oldmod.ldif
echo "."
sleep 0.5
echo "..."
sleep 0.5
echo "....."
sleep 0.5
echo "......"
sleep 0.5
echo "--> Phase 1 est achevée "
echo "\nCréation de nouvelles <ou>, comportant les noms de modules !"
ldapadd -h $adress -x -D "cn=Manager,dc=scom,dc=company" -w $passwd -f /tmp/oldmod.ldif 2>&1 > null
echo "."
sleep 0.5
echo "..."
sleep 0.5
echo "....."
sleep 0.5
echo "......"
sleep 0.5
echo "--> Phase 2 est achevée "
echo "\nDéplacement des groupes d'un module sous l'<ou> correspondant !"
ldapsearch -h $adress -x -b "forgeName=$frg,ou=group,dc=scom,dc=company" 'cn=*_cdp' dn | grep '^dn: ' | egrep -iv -e '_cdp1,ou=' -e '_cdp,ou='| sed -e 's/dn: cn=//' -e 's/_cdp,.*//' |
(while read x; do for suff in _dev _valid _cdp _integ _invite ; do ldapmodrdn -h $adress -D "cn=Manager,dc=scom,dc=company" -r -s "ou=$x,forgeName=$frg,ou=group,dc=scom,dc=company" -w $passwd -x
"cn=$x$suff,forgeName=$frg,ou=group,dc=scom,dc=company" "cn=$x$suff" -v; done; done) 2>&1 > /dev/null
retresultat=$?
echo "."
sleep 0.5
echo "..."
sleep 0.5
echo "....."
sleep 0.5
echo "......"
sleep 0.5
if [ $retresultat -ne 0 ]
then
echo "Problème rencontré, certains modules n'ont pas été traités < Phase 3 non achevée >"
echo "---> Vous devez réexécuter le Script, pour traiter les Modules restants."
exit 5
fi
echo "--> Phase 3 est achevée "
echo "\n\nLe traitement est terminé avec succés !!"
echo "Les modules existants de la $frg ont tous migré vers la nouvelle instance de LDAP."
echo "\n\nFin de l'execution du Programme \n"
exit 0
Écrire commentaire
gBqsPxAZ (mardi, 04 octobre 2022 15:47)
20
gBqsPxAZ (mardi, 04 octobre 2022 15:48)
20
gBqsPxAZ (mardi, 04 octobre 2022 15:51)
20
gBqsPxAZ (mardi, 04 octobre 2022 15:52)
20
gBqsPxAZ (mardi, 04 octobre 2022 15:52)
20
gBqsPxAZ (mardi, 04 octobre 2022 15:53)
20
gBqsPxAZ (mardi, 04 octobre 2022 15:53)
20
gBqsPxAZ (mardi, 04 octobre 2022 15:54)
0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
gBqsPxAZ (mardi, 04 octobre 2022 15:54)
pXH4cmKD'; waitfor delay '0:0:15' --
gBqsPxAZ (mardi, 04 octobre 2022 15:55)
lYN2JWyz' OR 663=(SELECT 663 FROM PG_SLEEP(15))--
gBqsPxAZ (mardi, 04 octobre 2022 15:55)
1%2527%2522
gBqsPxAZ (mardi, 04 octobre 2022 15:56)
20
gBqsPxAZ (mardi, 04 octobre 2022 15:56)
20
gBqsPxAZ (mardi, 04 octobre 2022 15:57)
20
gBqsPxAZ (mardi, 04 octobre 2022 15:57)
20
gBqsPxAZ (mardi, 04 octobre 2022 15:58)
20
gBqsPxAZ (mardi, 04 octobre 2022 15:59)
20
gBqsPxAZ (mardi, 04 octobre 2022 15:59)
20
gBqsPxAZ (mardi, 04 octobre 2022 16:01)
20
1 waitfor delay '0:0:15' -- (mardi, 04 octobre 2022 16:02)
20
gBqsPxAZ (mardi, 04 octobre 2022 16:02)
20
gBqsPxAZ (mardi, 04 octobre 2022 16:03)
20
gBqsPxAZ (mardi, 04 octobre 2022 16:03)
20
gBqsPxAZ (mardi, 04 octobre 2022 16:04)
20
gBqsPxAZ (mardi, 04 octobre 2022 16:04)
20
gBqsPxAZ (mardi, 04 octobre 2022 16:05)
20
gBqsPxAZ (mardi, 04 octobre 2022 16:06)
20
lxbfYeaa (mardi, 05 décembre 2023 06:02)
20
lxbfYeaa (mardi, 05 décembre 2023 06:03)
20