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 :

Trouver ou un fichier est lancé


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club Avatar de schnourf
    Inscrit en
    Mars 2003
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 66
    Points : 43
    Points
    43
    Par défaut Trouver ou un fichier est lancé
    Bonjour,

    j'ai le probleme suivant, je vient d'arriver dans une societe et je doit corriger les erreurs dans les jobs qui sont definis dans le fichier crontab.

    J'ai un probleme, dans mes logs, il y a une fichiers batchsql2.sh qui est lancé mais pas trouvé
    /nacht_jobs/batchsql2.sh: /nacht_jobs/batchsql2.sh: cannot open
    Le fichier n'existe pas et je le l'ai pas trouvé non plus.
    D'ou ma question comment est ce que je peux faire pour savoir d'ou est lancé ce fichier.
    Je me suis aussi demandé si je peux le creer et y mettre une ligne de commande pour recuperer le nom du fichier ou du processus qui le lance.

    Est-ce que c'est possible ?

    Merci de votre reponse.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    376
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 376
    Points : 402
    Points
    402
    Par défaut
    J'ai bien une idée, mais c'est rustique ...
    Tu crée le fichier, et tu lui fait spooller dans un fichier un ps -aef.
    Ensuite tu fait un petit grep dans ton fichier de ton process. Tu récupère le proccess père et tu refait un grep pour trouver quel est le processus qui l'a lancé.

    C'est pas très automatisé, mais ca devrais marcher.
    "There are two major products that come out of Berkeley: LSD and UNIX.
    We don't believe this to be a coincidence."
    - Jeremy S. Anderson

    La FAQ Python
    Les cours et tutoriels pour apprendre Python
    Le Forum Python

  3. #3
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    L'endroit d'où est lancé le script n'a pas d'importance. Le chemin du script en a une.

    Il existe plusieurs solutions pour trouver un fichier.

    tu peux faire en root :
    puis
    l'updatedb met à jour une base de données où est enregistrée l'emplacement de chaque fichier, c'est un processus plutôt long. Cependant, une fois que cela est fait, le locate est très rapide. Malheureusement, à chaque fois que de nouveaux fichiers apparaissent cette base de données n'est pas mise à jour.

    Tu peux aussi utiliser find qui lui scrute effectivement le disque dur à chaque utilisation.

    par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find -type f -name "batchsql2.sh" /
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find -type f -name "*.sh" /
    Je ne suis pas sûr de ta demande
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  4. #4
    Expert confirmé
    Avatar de Katyucha
    Femme Profil pro
    DevUxSecScrumOps Full Stack Bullshit
    Inscrit en
    Mars 2004
    Messages
    3 287
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Irlande

    Informations professionnelles :
    Activité : DevUxSecScrumOps Full Stack Bullshit

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 287
    Points : 5 075
    Points
    5 075
    Par défaut
    Le rustique ne tue pas !

    En effet, ce n'est pas une mauvaise idée du tout !
    vi /nacht_jobs/batchsql2.sh
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #!/bin/sh
    ps -aef > /tmp/mes_logs

    Ainsi tu aura l'état de ton système au lancement.
    Grave urgent !!!

  5. #5
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    ok, j'ai mieux compris maintenant ...

    Personnellement, je me placerai dans /etc et je lancerai un bon gros grep récursif.
    C'est bourrin... J'avoue.

    Le problème avec la méthode du ps -aef, c'est qu'il va falloir attendre que le script soit lancé automatiquement et on n'a aucune idée de la date de lancement.
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  6. #6
    Membre du Club Avatar de schnourf
    Inscrit en
    Mars 2003
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 66
    Points : 43
    Points
    43
    Par défaut
    Je pense que la date de lancement se situe au alentour de 14h.

    en effet mon fichier log ne contient que cette ligne et il date de 14h08.

    Meci je vais une fois essayer de creer le fichier facon rustique et voir aussi avec locate si ca marche.

  7. #7
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    Citation Envoyé par schnourf
    Je pense que la date de lancement se situe au alentour de 14h.

    en effet mon fichier log ne contient que cette ligne et il date de 14h08.

    Meci je vais une fois essayer de creer le fichier facon rustique et voir aussi avec locate si ca marche.
    Tente un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cd /
    grep -R batchsql2.sh *
    Tu auras sûrement une liste un petit peu énorme en sortie... Les binaires vont sûrement contenir cette chaîne
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  8. #8
    Membre du Club Avatar de schnourf
    Inscrit en
    Mars 2003
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 66
    Points : 43
    Points
    43
    Par défaut
    Je venait juste d'y penser.

    J'ai lancer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     find / -type f -print | xargs grep batchsql2.sh > /nacht_jobs/log/test.log
    Et je suis entrain d'attendre que ca se termine

  9. #9
    Invité
    Invité(e)
    Par défaut
    et juste comme ca... Il à ete lancé depuis le cron ce script non ??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    crontab -l | grep batchsql2.sh
    ca marcherait ou j'ai pas compris le probleme ?

  10. #10
    Membre du Club Avatar de schnourf
    Inscrit en
    Mars 2003
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 66
    Points : 43
    Points
    43
    Par défaut
    J'ai trouvé ou etait lancé le fichier,

    c dans /var/spool/cron/crontabs/oracle

    J'ai regardé ce que contenait ce fichier, il contient a peu de chose pres les meme lignes de commande que dans un autre fichier crontab.

    quand c'est dans 2 fichiers differents est-ce que les lignes qui sont dans les 2 fichiers seront interpreété 2 fois, d'ou le risque de voir 2 fois la meme procedure se lancer) ?

  11. #11
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    tout depend ou est l autre fichier ... s'il se trouve aussi dans
    /var/spool/cron/crontabs
    le risque existe grandement :
    ce repertoire contient un fichier par user (dans ton exemple c'est le user oracle), qui contienne leurs crontab
    pour les modifier la procedure normal est :
    su - user
    puis crontab -e pour editer
    Marc
    Slackware for ever ......
    BASH - KSH ( http://marcg.developpez.com/ksh/ )

  12. #12
    Membre du Club Avatar de schnourf
    Inscrit en
    Mars 2003
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 66
    Points : 43
    Points
    43
    Par défaut
    Merci de la reponse,

    Et oui l'autre crontab se trouve dans le meme repertoire, c peut etre pour ca que ils ont des problemes de rapidité.

    j'ai vu que ct le crontab de oracle, je viens de le modifier.
    C'est peut etre du a une erreur de manip de quelqu'un qui a modifier celui de oracle et non celui de root.
    En tout cas merci pour votre aide.

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

Discussions similaires

  1. Detecter si un Fichier est deja ouvert
    Par Didier Derain dans le forum C++Builder
    Réponses: 8
    Dernier message: 25/02/2005, 19h27
  2. Savoir si un logiciel est lancé
    Par LoicH dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/12/2004, 23h24
  3. Unix - Comment savoir si un fichier est ouvert
    Par freddyboy dans le forum C
    Réponses: 7
    Dernier message: 06/10/2004, 15h53
  4. Macro dans excel permettant de voir si un fichier est ouvert
    Par VirginieGE dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/08/2004, 07h51
  5. Comment tester si fichier est ouvert ?
    Par fusef dans le forum Langage
    Réponses: 7
    Dernier message: 11/08/2004, 18h51

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