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

Administration système Discussion :

[shell] déterminer si un shell est lancé manuellement ou par cron


Sujet :

Administration système

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 56
    Par défaut [shell] déterminer si un shell est lancé manuellement ou par cron
    Bonjour à tous

    Je travaille actuellement sur un shell de monitoring, mais soudain une problématique nouvelle s'est révélée à moi.

    En effet, le but premier de tout shell de monitoring est d'être programmé pour une exécution régulière. Néanmoins, pouvoir l'exécuter manuellement est évidemment requis.

    Dans l'idée, ce script envoi un email d'avertissement en cas d'erreur détectée, mais je pense que lorsque le shell est invoqué en interactif, l'e-mailing n'a pas de sens et peut devenir gênant (ie: exécutions multiples aux fins de tests etc.)

    Voyez-vous un moyen pour faire la distinction entre une exécution manuelle et une exécution planifiée par crontab de mon shell ?

    Merci d'avance

  2. #2
    Membre éclairé Avatar de mensoif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 248
    Par défaut
    Salut, ma réponse n'a rien d'exhaustif, mais tu pourrais te pencher dans les ppid des terms, et si jamais tu ne veux pas te fatiguer les yeux ps flax te montrera l'arborescence des proc.

    Tiens nous au cur dent!

  3. #3
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 56
    Par défaut
    Humm en fait, je pense après mûre réflexion que le mieux c'est peut-être de m'appuyer sur l'idu.

    En effet, je doute que jamais quelqu'un s'amuse à lancer le shell en interactif avec un utilisateur root (s'il le fait il passe à la compta de toute façon ), alors que si c'est la crontab root qui programme l'exécution du shell, normalement un id devrait nous sortir celui de root.

    Mais je suis pas sur de ma tambouille, ça mérite test

  4. #4
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 56
    Par défaut
    Effectivement, ma solution a été efficace.

    Une fois ajouté à la crontab de l'utilisateur root, le shell s'exécute depuis l'id 0.

    Il me suffit alors de faire un test sur cette valeur d'id, et faire un echo basic quand elle est différente de 0.

    Petite commande pour récupérer l'id de l'utilisateur (si ça peut servir):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ID=$(id | awk '{print $1}' | sed 's#uid=##' | sed 's#([a-zA-Z0-9]*)##')
    NB: la deuxième partie du sed doit sans doute être adaptée si votre environnement comporte des utilisateurs avec des caractères tels que le - ou le _ dans leur username

  5. #5
    Membre éclairé Avatar de mensoif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 248
    Par défaut
    Je note, car il se peut que j'utilise ta soluce d'ici peu. Merci =)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Shell] Rechercher si un fichier est en cours d'exécution dans un script
    Par frepixunli dans le forum Shell et commandes GNU
    Réponses: 14
    Dernier message: 28/08/2014, 00h59
  2. Tester si le shell script est lance en background ou pas ?
    Par mhtrinh dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 20/02/2008, 10h14
  3. [Shell] Tester si un fichier est vide
    Par Spitfire378 dans le forum Linux
    Réponses: 3
    Dernier message: 10/02/2008, 12h18
  4. Réponses: 3
    Dernier message: 17/05/2007, 16h19
  5. Shell qui appelle un xterm et lance des commandes
    Par Krispy dans le forum Linux
    Réponses: 6
    Dernier message: 09/03/2006, 17h35

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