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 :

Lancer les tâches d'un crontab pour test


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de gadj0dil0
    Profil pro
    Support technique
    Inscrit en
    Février 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Support technique

    Informations forums :
    Inscription : Février 2007
    Messages : 133
    Par défaut Lancer les tâches d'un crontab pour test
    Bonjour,

    Y a t-il un moyen de lancer les tâches du crontab en test (sans modifier les horodatages). Sachant que crontab a son propre environnement (il ne connaît pas celui des users me semble t-il,les locales, les chemins des binaires...) il est bien parfois de tester (sans passer par un copié-collé dans le shell).

  2. #2
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Pour tester un crontab, il n'y a pas d'autre méthode de test fiable.
    Le plus simple est de dupliquer la ligne à tester et de planifier une exécution quelques minutes plus tard, puis de supprimer la ligne après.

  3. #3
    Membre chevronné Avatar de srvremi
    Homme Profil pro
    Directeur d'école d'ingénieurs
    Inscrit en
    Mars 2002
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Directeur d'école d'ingénieurs
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 554
    Par défaut
    Au minimum je teste mes scripts CRON en supprimant le PATH user.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #!/bin/bash
     
    export PATH=""
     
    .......
    @+
    Rémi

  4. #4
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Heu... c'est un peu extrême comme approche, non ?

    Ça t'oblige a mettre le chemin complet pour toutes les commandes (non builtin) utilisées, même les commandes standard alors qu'avec cron, ce n'aurait pas été le cas.

    Ce qu'on peut suggérer plutôt, c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PATH=/bin:/usr/bin
    ...
    PS: pas besoin d'exporter la variable PATH, elle l'est déjà, toujours.

  5. #5
    Membre confirmé Avatar de gadj0dil0
    Profil pro
    Support technique
    Inscrit en
    Février 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Support technique

    Informations forums :
    Inscription : Février 2007
    Messages : 133
    Par défaut
    Merci de votre réponse, pour ma pat dans le crontab je met les chemins complets des binaires, je ne me pose même plus la question surtout avec tous les chemins de php par exemple, et en fonction des différents hébergeurs... PHP n'est pas built-in (core-utils) ok, mais la "base" dépend aussi des distributions. Il y a vraiment 1000 manières de faire les choses :
    Merci pour vos réponses

  6. #6
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    1/ Les built-ins, c'est les commandes internes au shell (ex: cd, echo, read), pas core-utils. Il n'y a pas besoin de PATH pour les exécuter.

    2/ Tous les systèmes Unix et Unix like disposent d'un certain nombre de commandes standard (définies par POSIX, comme cat, ls, awk, sed, rm, mv, etc. et dont quelques unes sont fournies par core-util sous GNU). Ces commandes doivent obligatoirement être accessibles avec le PATH par défaut. Sous Linux, ces commandes sont soit dans /bin, soit dans /usr/bin (soit les deux).

    Ce n'est pas une bonne pratique de mettre le path complet pour chaque occurrence de ces commandes. Par exemple, des commandes comme yes, cut ou expr vont se trouver dans /usr/bin sur certains Unix-like et dans /bin dans d'autres. Il faudra que tu fasses une version de script par système cible, ce qui est absurde.

    Pour ne pas avoir ce problème, il suffit de ne pas retirer ces deux répertoires du PATH (et de les laisser en début de PATH) pour qu'elles continuent à être utilisables. Si tu veux gérer le cas où les commandes non standard que tu utilises peuvent se trouver dans des endroits différents suivant les distributions, il suffit d'ajouter la liste des tous les chemins possibles dans ton PATH dans le script appelant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PATH=$PATH:/opt/phpmachin/bin:/var/phptruc/bin

    PS: Dans les forums, pas besoin de se vouvoyer.

Discussions similaires

  1. Problème pour lancer les fichiers .m sous Vista
    Par Henry22 dans le forum Octave
    Réponses: 1
    Dernier message: 25/04/2009, 23h49
  2. Réponses: 6
    Dernier message: 07/02/2008, 12h33
  3. Comment attendre que tous les thread lancés soient morts pour lancer une action.
    Par rgesnot dans le forum Concurrence et multi-thread
    Réponses: 2
    Dernier message: 31/03/2007, 20h27
  4. Réponses: 10
    Dernier message: 10/11/2006, 15h57
  5. Fonction pour lancer les applications standards
    Par black is beautiful dans le forum Windows
    Réponses: 4
    Dernier message: 08/03/2006, 15h47

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