Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
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 30/04/2007, 16h27   #1
Candidat au titre de Membre du Club
 
Inscription : mai 2005
Messages : 43
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 43
Points : 14
Points : 14
Par défaut Définir un timeout

Bonjour,
Dans un script ksh je lance un ping et je test son code de retour, si $?=0 je lance un sqlplus, la syntaxe est la suivante:
Code :
1
2
3
4
5
6
7
PING_CODE=$(ping serveurA 2>ping.res)
  if [[ $?-gt 0 ]]; then
      echo " le serveurA ne répond pas"
  else
    sqlplus user/mdp@schema >sqlplus.res <<FIN
		exit
FIN
Je veux définir un timeOut=10 pour ne pas attendre longtemps la réponse de ping ou de sqlplus, une fois le timeOut atteind j'arrête le traitement du script.

Est ce que quelqu'un connait la syntaxe exacte pour faire ça?

Merci d'avance
devlo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2007, 11h43   #2
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 776
Points : 7 776
un time out n'est pas un bon choix et tester la reponse au ping encore moins (un ping peut etre ok alors que la machine n'a pas fini son boot, que la machine est dans un niveau d'execution different, que les services oracles sont indisponnibles etc....etc....etc....ou pire encore qu'une autre machine reponde a cause d'un conflit d'ip ou encore qu'une autre machine reponde par DHCP sur cette adresse alors que la machine que tu veux joindre est eteintes bref des tas de raisons pourlesquels tester un ping est une aberation totale si on test pour lancer ensuite une commande sur cette machine.

il est plus interessant de tester
1-que la machine est reelement dispo (ssh ou rsh plustot que ping donc puisque le ping peu repondre avant la fin du boot de la machine par exemple)
2-tester la presence du pmon de la base que tu veux joindre
3-tester la presence du listner etc...
tout ca dans une commande ssh ou rsh sur la machine distante et si ok alors executer ton sqlplus

genre
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
 rsh user@host -c "ps -ef | grep -e pmon -e listner -e......."  > /tmp/test.log
 grep -i -e pmon -e ........... /tmp/test.log
 if [[ $? -gt 0 ]]; then
        ping -c 5 host 
        if [[ $? -ne 0 ]] ; then
             echo "machine indisponnible" .........
        else
             echo "oracle indisponnible......"
        fi
       exit 1
 fi
 sqlplus ...........................
 if [[ $? -ne 0 ]] ; then
            echo "pb lors de l'execution de sqlplus......................"
            exit 1
 fi
 exit 0
c'est plus pertinant comme test et surtout ca permet une meilleure analyse en cas de pepin

bien sur faut adapter mais le principe
frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 11h23   #3
Candidat au titre de Membre du Club
 
Inscription : mai 2005
Messages : 43
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 43
Points : 14
Points : 14
Je te remercie pour ces informations, je crois que je vais faire ce que tu as dis.
devlo 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 02h15.


 
 
 
 
Partenaires

Hébergement Web