Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications
Applications Questions sur l'utilisation d'applications, du shell, et des interfaces graphiques (KDE, Gnome, XFCE... )
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/11/2006, 10h34   #1
Membre actif
 
Avatar de Empty_body
 
Inscription : mai 2004
Messages : 679
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 679
Points : 186
Points : 186
Par défaut Détection d'une base de données

Salut, j'aimerais mettre au point un petit script pour vérifier la présence d'une base de données. Quelqu'un aurait une idée ou une piste à me donner?
Merci.
__________________
Pourquoi vouloir ré-inventer la roue...
...Surtout si c'est pour la faire carrée...
Empty_body est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 11h26   #2
Membre confirmé
 
Inscription : octobre 2005
Messages : 344
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 344
Points : 270
Points : 270
Quelle base de données ? ORACLE ? Sybase ? MySQL ? ....
usf70 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 11h33   #3
Membre actif
 
Avatar de Empty_body
 
Inscription : mai 2004
Messages : 679
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 679
Points : 186
Points : 186
C'est vrai que je suis pas top complet, je vais me rattraper...

La DB est une DB postgres qui n'est pas forcément sur la machine depuis laquelle je compte exécuter mon script mais qui figure au minimum dans le fichier Hosts...
__________________
Pourquoi vouloir ré-inventer la roue...
...Surtout si c'est pour la faire carrée...
Empty_body est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 13h35   #4
Membre actif
 
Avatar de Empty_body
 
Inscription : mai 2004
Messages : 679
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 679
Points : 186
Points : 186
J'ai peut etre une ébauche de solution à mon problème :

Code :
1
2
3
4
5
6
if psql -U username -d DBname
then
	echo ca marche
else
	echo ca marche pas
fi
Le problème est que lorsque je lance le script, il arrive sur la db et cesse son exécution jusqu'au \q introduit manuellement... Quelqu'un connaitrait un truc pour éviter de devoir le noter???
__________________
Pourquoi vouloir ré-inventer la roue...
...Surtout si c'est pour la faire carrée...
Empty_body est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 14h03   #5
Membre actif
 
Avatar de Empty_body
 
Inscription : mai 2004
Messages : 679
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 679
Points : 186
Points : 186
J'ai trouvé pour le cas où la db est en local...

Code :
1
2
3
4
5
6
if psql -U userName -d DBName -c "\q"
then
	echo ca marche
else
	echo ca marche pas
fi
__________________
Pourquoi vouloir ré-inventer la roue...
...Surtout si c'est pour la faire carrée...
Empty_body est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2006, 15h20   #6
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 546
Détails du profil
Informations personnelles :
Nom : Homme francois
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : juillet 2006
Messages : 3 546
Points : 7 775
Points : 7 775
alors execute ton script pour chaque machine du fichier hosts ...

Code :
1
2
3
4
5
6
7
8
 
for i in `cat /etc/hosts` ; do
   if [`rsh $i "whereis psql" | cut -d":" -f2 | wc -c` -gt 1 ]; then
       echo "Postgres présent sur la machine :$i"
   else
       echo "Postgres absent sur la machine :$i"
   fi
done
tu obtiens une liste comme
Citation:
Postgres présent sur la machine : gaston
Postgres présent sur la machine : lagaffe
Postgres absent sur la machine : bertrand
Postgres absent sur la machine : labevue
Host demesmaker unreachable
Postgres absent sur la machine : demesmaker
Postgres présent sur la machine : madmoiselle
Postgres présent sur la machine : janne

explication :
Code :
1
2
/>if [ `rsh flbl "whereis fsduut" | cut -d":" -f2 | wc -c` -gt 1 ]; then echo ok ; fi 
/>
ne répond rien puisque fsduut n'existe bien sur pas
répond un message explicite si la machine n'est pas joignable sans aucune influances sur le message "ok" dans le cas normal comme suit :
Code :
1
2
3
4
 
/>if [ `rsh flbl "whereis vdump" | cut -d":" -f2 | wc -c` -gt 1 ]; then echo ok ; fi 
ok
/>
si [`connection machine "ouest programme" | compter les caracteres apres le ":" plus grandque 1 ]; alors echo ok

avantage de la méthode:
  • ne demarre pas de session psql
  • permet de faire des tests aditionnels
  • ne bouffe pas de cpu sur la machine distante (juste une commande interne au systeme et donc tres legere)
  • on peut ajouter un test pour voir si la base est démarrée en ajoutant un autre bloc if en testant ps -ef | grep postmaster....
  • fonctionne quelque soit l'application à tester (juste le nom d'executable à changer.
  • pas blocant si une machine n'est pas joignable

impoderable :
  • si une machine n'est pas joignable le message affiché est psql absent de la machine ........+ un message systeme genre host unreachable
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2006, 22h07   #7
Membre actif
 
Avatar de Empty_body
 
Inscription : mai 2004
Messages : 679
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 679
Points : 186
Points : 186
Tout grand merci... C'est nickel...
__________________
Pourquoi vouloir ré-inventer la roue...
...Surtout si c'est pour la faire carrée...
Empty_body est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h11.


 
 
 
 
Partenaires

Hébergement Web