LINUX ORACLE CRONTAB

Fermé
00sebbe - 26 oct. 2006 à 10:50
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 26 oct. 2006 à 17:29
Bonjour,

J'ai un serveur Oracle sous Linux, j'ai fais un script de sauvegarde de base.Le script fonctionne sans problème.Mon soucis est quand je j'essaye de la mettre en crontab:

Voilà mon script:


#!/bin/sh
log='/home/oracle/log/'
suffixe=$(date +%y%m%d)

cd /home/oracle/sauvegarde_oracle
exp login/mdp file=save.dmp full=y compress=n
echo sauvegarde $suffixe >> $log/log_oarcle.txt
mv save.dmp /home/oracle/test/



Donc mon soucis c'est que quand je l'execute en crontab il me met EXP commande not found..Pourtant je l'utilise avec le user ORACLE ayant droit..

Je conprend pas, si quelqu'un à une idée, d'avance merci.

7 réponses

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
26 oct. 2006 à 12:12
Salut,

Si tu essayes avec "/usr/bin/expr" au lieu de "expr" tout court, est-ce que c'est mieux ?

Fait de même avec "date" (qui doit être sous "/bin/date") et "mv" ("/bin/mv").

Vérifie les chemins complets avec la commande "which" ou "whereis", si tu n'es pas sûr.


Dal
0
Merci pour te réponse, j'ai un autre message maintenant, je pense qu'il n'arrive pas à exporter..C'est un casse tête...Voilà le message:

Sortie de la commande /home/oracle/save_oracle.sh ..

Message 206 not found; No message file for product=RDBMS, facility=EXP: Release 9.2.0.7.0 - Production on Thu Oct 26 12:45:48 2006

Copyright (c) 1982, 2002, Oracl

Invalid format of Export utility name

Verify that ORACLE_HOME is properly set

Export terminated unsuccessfully

EXP-00000: Message 0 not found; No message file for product=RDBMS, facility=EXPmv: cannot stat `save.dmp': No such file or directory



MErci..
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
26 oct. 2006 à 14:57
Re,

Verify that ORACLE_HOME is properly set

Cette variable d'environnement ne doit pas être initialisée dans l'environnement dans lequel cron tourne.

fais

echo $ORACLE_HOME

pour savoir ce qu'elle est sensée contenir

Tu peux ensuite fixer cette valeur dans ta crontab, avant les entrées de la crontab elles-mêmes.

ORACLE_HOME = /le/resultat/


Dal
0
Merci,

Donc l'environement dans lequel tourne cron doit etre root je supose??
Toutes les variables liées à Oracle sont defini pour l'utilisateur oracle..J'ai rajouté dans le fichier /etc/crontab la variable ORACLE_HOME, mais j'ai toujours le même message d'erreur..

Merci pour tes reponses,
Seb.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci,

Donc l'environement dans lequel tourne cron doit etre root je supose??
Toutes les variables liées à Oracle sont defini pour l'utilisateur oracle..J'ai rajouté dans le fichier /etc/crontab la variable ORACLE_HOME, mais j'ai toujours le même message d'erreur..

Merci pour tes reponses,
Seb.
0
Je me suis trompé j'ai un autre message d'erreur:

Sortie de la commande save_oracle.sh ..

Export: Release 9.2.0.7.0 - Production on Thu Oct 26 17:01:23 2006

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.


EXP-00056: ORACLE error 7217 encountered
ORA-07217: sltln: environment variable cannot be evaluated.
Username:
EXP-00030: Unexpected End-Of-File encountered while reading input
EXP-00000: Export terminated unsuccessfully
mv: cannot stat `save.dmp': No such file or directory
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
26 oct. 2006 à 17:29
Re :)

Donc l'environement dans lequel tourne cron doit etre root je supose??
Toutes les variables liées à Oracle sont defini pour l'utilisateur oracle..J'ai rajouté dans le fichier /etc/crontab la variable ORACLE_HOME, mais j'ai toujours le même message d'erreur..


Remet /etc/crontab en état.

Puisque ton script est sensé être lancé par un user "oracle", tu devrais utiliser la crontab de ce user. Il sera alors lancé avec les droits de ce user.

su - oracle
crontab -e


Celà te place dans la crontab de ce user avec l'éditeur texte par défaut (vi sauf cas particulier).

Outre ton entrée de crontab lançant ton script, tu y rajoutes les variables d'environnement préalables qui sont nécessaires à ton script pour fonctionner.

Après avoir sauvegardé et quitté l'éditeur, la commande crontab va mettre à jour immédiatement l'entrée sans qu'il soit nécessaire d'arrêter et redémarrer le démon. Tu devrais avoir un message te le confirmant :

crontab: installing new crontab

Sinon, sur ceci :

sltln: environment variable cannot be evaluated

Visiblement, tu as d'autres variables qui te manquent.

Sous ton user "oracle" tape :

env

Et voit un peu de quoi tu peux avoir besoin.


Dal
0