Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
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 10/02/2011, 16h52   #1
Membre habitué
 
Homme
Administrateur de base de données
Inscription : mars 2005
Messages : 264
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2005
Messages : 264
Points : 121
Points : 121
Par défaut [Script - Ksh] su et sqlplus

Bonjour,

je galère sur un truc qui à mon avis doit être tout bête.

Quand je suis en root et que je tape successivement :
Code :
1
2
3
[root@XXXXX log_jour]# su - userl --command="sqlplus form/form <<FIN
> select to_char(sysdate,'dd.mm.yyyy hh24:mm:ss') from dual;
> FIN"
je n'ai aucun souci :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
SQL*Plus: Release 10.2.0.4.0 - Production on Thu Feb 10 16:29:37 2011
 
Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.
 
 
Connecte a :
Oracle Database 10g Release 10.2.0.4.0 - 64bit Production
 
SQL>
TO_CHAR(SYSDATE,'DD
-------------------
10.02.2011 16:02:37
 
SQL> Deconnecte de Oracle Database 10g Release 10.2.0.4.0 - 64bit Production

En revanche quand je l'intègre dans un script (en environnement ksh), je n'arrive pas à obtenir le résultat de la requête, il bloque sur le login de connexion sqlplus, il me le redemande comment s'il s'était arrêté à la commande sqlplus. Du coup j'ai essayé un paquet de solutions mais pour le moment je n'ai pas trouvé la bonne. Il lui faut à priori des retours à la ligne dans le code, j'ai donc tenté cela sans succès :
Code :
1
2
3
su - userl --command="sqlplus form/form <<FIN\r\n
select to_char(sysdate,'dd.mm.yyyy hh24:mm:ss') from dual;\r\n
FIN"
Le problème à mon sens se situe au niveau des guillemets, qu'en pensez-vous svp ?

NB : j'ai créé un autre script contenant ma commande sqlplus en totalité (sans les retours chariots). Quand j'appelle ce script avec un
Code :
su - userl -c monscript
ça fonctionne. Ce qui m'embête c'est que ça fait un script qui appelle un autre script et vu que je dois le faire régulièrement pour d'autres tâches, ça va m'en faire une sacré liste (et donc un sacré bordel).
tck-lt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 17h02   #2
Membre Expert
 
Homme Alexis
Intégrateur d'Exploitation
Inscription : février 2003
Messages : 876
Détails du profil
Informations personnelles :
Nom : Homme Alexis
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Intégrateur d'Exploitation
Secteur : Biens de consommation

Informations forums :
Inscription : février 2003
Messages : 876
Points : 1 619
Points : 1 619
Envoyer un message via ICQ à Alek-C Envoyer un message via Skype™ à Alek-C
Pourquoi utiliser su plutôt que sudo ?
Alek-C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 17h12   #3
Membre habitué
 
Homme
Administrateur de base de données
Inscription : mars 2005
Messages : 264
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2005
Messages : 264
Points : 121
Points : 121
Bonne question à laquelle je n'avais pas pensé. En fait je migre des batchs qui sont sous AIX 5.3 sur de la RHEL 4 et le sudo n'existe pas sous mes AIX.
Je vais adapter.
tck-lt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 17h23   #4
Expert Confirmé Sénior
 
Avatar de frp31
 
Homme francois
Ingénieur systèmes et réseaux
Inscription : juillet 2006
Messages : 3 534
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 534
Points : 7 743
Points : 7 743
le problème est tout connement un problème de quotage


gestion des ",`,'
tu peux les protéger d'interprétation avec des \ par exemple.

frp31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 17h43   #5
Membre habitué
 
Homme
Administrateur de base de données
Inscription : mars 2005
Messages : 264
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2005
Messages : 264
Points : 121
Points : 121
C'est ce que je signale dans mon post que c'est un problème de quote mais lequel, c'est-à-dire, qu'est-ce-qu'il manque ou qu'est-ce-qu'il y a en trop ? (je n'ai exposé ici qu'une des possibilités que j'ai tentées.
tck-lt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 17h53   #6
Membre habitué
 
Homme
Administrateur de base de données
Inscription : mars 2005
Messages : 264
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2005
Messages : 264
Points : 121
Points : 121
j'ai tenté d'utiliser sudo, l'inconvénient est que je ne me retrouve pas avec mes variables d'environnement à l'exécution de la commande, je dois zapper une option je pense. J'ai bien vu le -H mais ça c'est seulement pour fixer son Home Directory non ?
tck-lt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 18h26   #7
Membre Expert
 
Homme Alexis
Intégrateur d'Exploitation
Inscription : février 2003
Messages : 876
Détails du profil
Informations personnelles :
Nom : Homme Alexis
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Intégrateur d'Exploitation
Secteur : Biens de consommation

Informations forums :
Inscription : février 2003
Messages : 876
Points : 1 619
Points : 1 619
Envoyer un message via ICQ à Alek-C Envoyer un message via Skype™ à Alek-C
non, tu ne rates rien je crois : il faut charger ton .profile avant de faire la commande si tu as besoin de variables à l'intérieur... mais normalement, tu ne devrais pas
Alek-C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 18h58   #8
Membre habitué
 
Homme
Administrateur de base de données
Inscription : mars 2005
Messages : 264
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2005
Messages : 264
Points : 121
Points : 121
ok je verrai ça demain pour charger mon .profile, c'est obligatoire pour moi car c'est l'environnement bien précis d'une base Oracle (avec définition de l'ORACLE_SID, ORACLE_HOME etc...)
tck-lt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2011, 09h18   #9
Membre Expert
 
Homme Alexis
Intégrateur d'Exploitation
Inscription : février 2003
Messages : 876
Détails du profil
Informations personnelles :
Nom : Homme Alexis
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Intégrateur d'Exploitation
Secteur : Biens de consommation

Informations forums :
Inscription : février 2003
Messages : 876
Points : 1 619
Points : 1 619
Envoyer un message via ICQ à Alek-C Envoyer un message via Skype™ à Alek-C
ouais, mais normalement, ça ne devrait pas être dans le .profile ce genre de chose : c'est une mauvaise pratique !
Alek-C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2011, 11h19   #10
Membre habitué
 
Homme
Administrateur de base de données
Inscription : mars 2005
Messages : 264
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2005
Messages : 264
Points : 121
Points : 121
où est-ce-que je peux le mettre si ce n'est dans le .profile de mon user Oracle ?
tck-lt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 16h17   #11
Membre Expert
 
Homme Alexis
Intégrateur d'Exploitation
Inscription : février 2003
Messages : 876
Détails du profil
Informations personnelles :
Nom : Homme Alexis
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Intégrateur d'Exploitation
Secteur : Biens de consommation

Informations forums :
Inscription : février 2003
Messages : 876
Points : 1 619
Points : 1 619
Envoyer un message via ICQ à Alek-C Envoyer un message via Skype™ à Alek-C
Personnellement, je fais un fichier à part, situé à un emplacement accessible par tout le monde ayant besoin du fichier, ce qui permet de n'avoir qu'un seul et même fichier à charger quelque soit l'utilisateur souhaitant accéder à Oracle.

Pour te donner un exemple, chez un client, ils mettaient cela dans /var/opt/oracle/...
Il y avait un script qui permettait de charger l'environnement requis selon les besoins, mais tu peux simplifier en ne mettant que plusieurs fichiers de profile.

Les avantages sont d'une part que tu n'as qu'un fichier à maintenir et d'autre part, tu sépares bien le contenu de ton .profile qui ne concerne "que" des trucs liés au shell du contenu qui concerne les bases de données ou autre.
Alek-C 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 11h58.


 
 
 
 
Partenaires

Hébergement Web