IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Programme dans un crontab


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 15
    Par défaut Programme dans un crontab
    Bonjour tous

    Alors voila mon problème, j'ai un programme qui génère un fichier et j'aimerai qu'il s'exécute de façon automatique toutes les nuits.

    Quand je fait manuellement un "fglrun gest_web_auto", aucun soucis, les fichiers sont créés...

    Étape suivante : le crontab
    Alors dans le cron de l'utilisateur qui lance le programme manuellement d'habitude, j'ai mis cette ligne :
    00 01 * * * . /users3/profile_auto
    le fichier "profile_auto" est une copie du .profile de l'utilisateur classique mais auquel j'ai ajouté une ligne tout en bas pour lancer le programme "fglrun gest_web_auto"


    Le programme ne fonctionne pas, voici le message d'erreur que j'obtient :
    Program stopped at "gest_web_auto.4gl", line number 41.
    SQL statement error number -329.
    Database not found or no system permission.
    SYSTEM error number -2.
    No such file or directory
    J'avoue que la je bloque totalement, que faire?

    Merci beaucoup pour votre future aide.
    Stan.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Par défaut
    Fais-tu appelle à ton programme en donnant son chemin en absolue ?

    Citation Envoyé par stanley1415 Voir le message
    Bonjour tous

    Alors voila mon problème, j'ai un programme qui génère un fichier et j'aimerai qu'il s'exécute de façon automatique toutes les nuits.

    Quand je fait manuellement un "fglrun gest_web_auto", aucun soucis, les fichiers sont créés...

    Étape suivante : le crontab
    Alors dans le cron de l'utilisateur qui lance le programme manuellement d'habitude, j'ai mis cette ligne :
    le fichier "profile_auto" est une copie du .profile de l'utilisateur classique mais auquel j'ai ajouté une ligne tout en bas pour lancer le programme "fglrun gest_web_auto"


    Le programme ne fonctionne pas, voici le message d'erreur que j'obtient :


    J'avoue que la je bloque totalement, que faire?

    Merci beaucoup pour votre future aide.
    Stan.

  3. #3
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    En crontab, il faut :
    • Sourcer tous les fichiers necessaires (.profile, ...)
    • lancer les programmes en chemin absolu


    As-tu bien respecte cela ?
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  4. #4
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 15
    Par défaut
    Tout d'abord merci pour vos réponses et désolé de n'avoir pas pu répondre plus rapidement...

    Tout mes liens sont bien en absolu, je part de la racine du serveur à chaque lien
    et de plus le programme se lance bien donc c'est que mon chemin est correct


    "Sourcer tout les fichiers", ben la je sais pas trop mais comme je reprend exactement le .progile d'un utilisateurs lambda, je suppose que oui

  5. #5
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 15
    Par défaut
    please svp, j'ai toujours besoin d'aide pour ce problème...


    ...





    Help

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 134
    Par défaut
    Citation Envoyé par stanley1415 Voir le message
    "Sourcer tout les fichiers", ben la je sais pas trop mais comme je reprend exactement le .progile d'un utilisateurs lambda, je suppose que oui
    "Sourcer tout les fichiers" signifie je suppose les exécuter avec la commande source.

    Si tu exécutes ton .profile dans un script sans l'appeler par source (ou .), les assignations de variables ou autres déclarations qu'il effectue ne seront pas connues du script qui l'appelle.

    Citation Envoyé par man bash
    . fichier [arguments]
    source fichier [arguments]
    Lire et exécuter les commandes contenues dans le
    fichier avec l'environnement du shell en cours,
    puis renvoyer le code de retour de la dernière com*
    mande exécutée dans le fichier. Si le nom du
    fichier ne contient pas de slash, on utilise les
    chemins d'accès contenus dans la variable PATH pour
    rechercher le répertoire contenant le fichier.
    Lorsqu'il est recherché dans le PATH le fichier n'a
    pas besoin d'être exécutable. Le répertoire de tra*
    vail en cours est finalement examiné si aucun
    fichier n'est trouvé dans le PATH. Si des argu*
    ments sont fournis, ils sont transmis dans les
    paramètres positionnels lorsque le fichier est
    exécuté. Sinon les paramètres positionnel ne sont
    pas modifiés. Le code de retour est celui de la
    dernière commande exécutée au sein du script (0 si
    aucune commande n'est exécutée), et faux si le
    fichier n'est pas trouvé.

    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  7. #7
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 657
    Par défaut
    dans ton script, soit tu donnes aux commandes utilisées leur chemin absolu :
    par exemple pour lssoit tu inscris le path :dans ton script
    ...
    ?
    une autre solution, que je n'ai pas réussi à faire fonctionner, mais qui le devrait (il me semble que c'est dans la manpage, et différents tutos) est d'indiquer dans le fichier ouvert avec `crontab -e` le PATH
    ...
    ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. Enseigner la programmation dans les lycées.
    Par Jorganiz dans le forum Etudes
    Réponses: 9
    Dernier message: 11/01/2006, 09h34
  2. Réponses: 2
    Dernier message: 27/12/2005, 11h47
  3. [VB6] Ajout du programme dans la barre de tâche
    Par Fab18 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 11/01/2005, 09h17
  4. Mettre son programme dans Envoyer Vers ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 11
    Dernier message: 29/07/2003, 19h09
  5. Fin de programme dans une procédure
    Par Sinclair dans le forum Langage
    Réponses: 13
    Dernier message: 29/11/2002, 22h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo