LINUX ORACLE CRONTAB

00sebbe -  
[Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   -
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.
Configuration: DEBIAN-ORACLE 9

7 réponses

  1. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    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
  2. 00sebbe
     
    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
  3. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    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
  4. 00sebbe
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 00sebbe
     
    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
  7. 00sebbe
     
    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
  8. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    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