Logs sqlplus trop bavardent dans un script ksh

Résolu
david59000 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
mamiemando Messages postés 33766 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Dans le cadre de mon activité professionnelle, je suis amené parfois à modifier/créer des shell (ksh) sur un AIX 6. Le HIC, c'est qu'à la base, ce n'est pas mon domaine, mais bon on s'adapte...

Actuellement, je planche sur une problématique purement "esthétique", les personnelles de la boîte étant particulièrement pointilleux...

Voici le contenu (en partie...) de mon script actuelle :

[...]
echo "update TABLE_VALIDATION" >/tmp/requete_validation.sql
echo "set" >>/tmp/requete_validation.sql
echo " user_funct1='&1'," >>/tmp/requete_validation.sql
echo " email_funct1='&2'," >>/tmp/requete_validation.sql
echo " user_tech2='&3'," >>/tmp/requete_validation.sql
echo " email_tech1='&2'," >>/tmp/requete_validation.sql
echo " user_tech1='&1'," >>/tmp/requete_validation.sql
echo " user_funct2='&3';" >>/tmp/requete_validation.sql
echo "commit;" >>/tmp/requete_validation.sql
echo "exit;" >>/tmp/requete_validation.sql
sqlplus -s test/test @/tmp/requete_validation.sql $nom $mail $nom2
echo "La table TABLE_VALIDATION a été mise à jour"
rm /tmp/requete_validation.sql


Ce qui renvoie à l'écran une fois le script exécuté :

ancien 3 : user_funct1='&1',
nouveau 3 : user_funct1='madameA',
ancien 4 : email_funct1='&2',
nouveau 4 : email_funct1='madame.aaa@cheznous.fr',
ancien 5 : user_tech2='&3',
nouveau 5 : user_tech2='monsieurB',
ancien 6 : email_tech1='&2',
nouveau 6 : email_tech1='madame.aaa@cheznous.fr',
ancien 7 : user_tech1='&1',
nouveau 7 : user_tech1='madameA',
ancien 8 : user_funct2='&3'
nouveau 8 : user_funct2='monsieurB'

10431 ligne(s) mise(s) à jour.


Mais pour nos chers utilisateurs, cette dernière partie semble visuellement "trop insupportable"... Et ils souhaiteraient fortement ne plus voir ces logs quand ils exécutent ce script.


P.S. : les variables $nom $mail et $nom2 sont alimentées plus haut dans mon script. Je vous dispense de cette partie du script par souci de discrétion...


Please... help !

Merci d'avance ;-)



A voir également:

1 réponse

mamiemando Messages postés 33766 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
Je n'ai pas très bien compris ce que tu voulais masquer ni quelle instruction écrit le texte "ancien 3 : etc...". Dans ce cas il suffit de rediriger la sortie standard et/ou la sortie d'erreur (ie les messages et les messages d'erreur) écrits par cette instruction dans /dev/null (que tu peux voir comme un trou noir).

ma_commande 1> /dev/null 2> /dev/null


Admettons que ce soit ta commande sqlplus, du coup elle devient :

sqlplus -s test/test @/tmp/requete_validation.sql $nom $mail $nom2 1> /dev/null 2> /dev/null


Petits rappels sur les processus :
- un processus lit de l'information sur un flux d'entrée (par défaut l'entrée standard, /dev/stdin), ce qui concrètement revient à lire une saisie clavier dans la console,
- un processus écrit ses message dans un flux de sortie (par défaut le flux de sortie standard, /dev/stdout) ce qui concrètement revient à écrire dans la console
- un processus écrit ses message d'erreur dans un flux de sortie d'erreur (par défaut le flux de sortie standard, /dev/stderr) ce qui concrètement revient à écrire dans la console (mais ça reste un flux différent de /dev/stdout, ce qui permet de dissocier aisément ces deux flux)
- tous ses flux peuvent être redirigés par des opérateurs de redirection.

En shell tu as les opérateurs de redirection suivants :
- 1> (ou >) redirige le flux de sortie standard (/dev/stdout) dans un fichier (écrase le fichier s'il existe)
- 2> même principe avec le flux d'erreur (/dev/stderr)
- 1>> (ou >>) redirige le flux de sortie standard à la suite dans un fichier
- 2>> même principe avec le flux d'erreur (/dev/stderr)
- < alimente l'entrée standard à partir d'un fichier.
- | redirige le flux de sortie standard du processus à gauche de | sur l'entrée standard du processus de droite.

Bonne chance
0
david59000 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup pour toutes ces précieuses informations. Je viens d'essayé en redirigeant ma commande sqlplus vers les sorties standard et sortie d'erreur... et ça marche, NICKEL !

Un grand merci ;-)
0
mamiemando Messages postés 33766 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
De rien bonne continuation !
0