Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/10/2005, 11h12   #1
Membre à l'essai
 
Avatar de schnourf
 
Inscription : mars 2003
Messages : 66
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 66
Points : 20
Points : 20
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é
Citation:
/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.
schnourf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 11h20   #2
Membre éclairé
 
Inscription : mai 2004
Messages : 376
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 376
Points : 343
Points : 343
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.
getupa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 11h25   #3
Modérateur
 
Avatar de ggnore
 
Inscription : juillet 2004
Messages : 2 246
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : juillet 2004
Messages : 2 246
Points : 1 904
Points : 1 904
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 :
find -type f -name "batchsql2.sh" /
ou

Code :
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.
ggnore est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 11h25   #4
Expert Confirmé
 
Avatar de Katyucha
 
Inscription : mars 2004
Messages : 3 109
Détails du profil
Informations personnelles :
Âge : 31
Localisation : Allemagne

Informations forums :
Inscription : mars 2004
Messages : 3 109
Points : 3 313
Points : 3 313
Le rustique ne tue pas !

En effet, ce n'est pas une mauvaise idée du tout !
vi /nacht_jobs/batchsql2.sh
Code :
1
2
#!/bin/sh
ps -aef > /tmp/mes_logs

Ainsi tu aura l'état de ton système au lancement.
__________________
Ancien Rédacteur Linux && Unix / Nouveau retraité de DVP
The UNIX way of sex:
gunzip;strip;touch;finger;mount;fsck;more;yes;umount;sleep

Je ne réponds ni aux messages privées, ni aux messages plein de fautes...
Katyucha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 11h28   #5
Modérateur
 
Avatar de ggnore
 
Inscription : juillet 2004
Messages : 2 246
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : juillet 2004
Messages : 2 246
Points : 1 904
Points : 1 904
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.
ggnore est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 11h36   #6
Membre à l'essai
 
Avatar de schnourf
 
Inscription : mars 2003
Messages : 66
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 66
Points : 20
Points : 20
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.
schnourf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 11h44   #7
Modérateur
 
Avatar de ggnore
 
Inscription : juillet 2004
Messages : 2 246
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : juillet 2004
Messages : 2 246
Points : 1 904
Points : 1 904
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 :
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.
ggnore est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 11h56   #8
Membre à l'essai
 
Avatar de schnourf
 
Inscription : mars 2003
Messages : 66
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 66
Points : 20
Points : 20
Je venait juste d'y penser.

J'ai lancer
Code :
 find / -type f -print | xargs grep batchsql2.sh > /nacht_jobs/log/test.log
Et je suis entrain d'attendre que ca se termine
schnourf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 13h55   #9
Membre confirmé
 
Inscription : septembre 2005
Messages : 229
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 229
Points : 209
Points : 209
Envoyer un message via MSN à bibi.skuk
et juste comme ca... Il à ete lancé depuis le cron ce script non ??
Code :
crontab -l | grep batchsql2.sh
ca marcherait ou j'ai pas compris le probleme ?
bibi.skuk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 14h00   #10
Membre à l'essai
 
Avatar de schnourf
 
Inscription : mars 2003
Messages : 66
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 66
Points : 20
Points : 20
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) ?
schnourf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 14h33   #11
Rédacteur
 
Inscription : mars 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 1 298
Points : 1 450
Points : 1 450
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/ )
MarcG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 14h50   #12
Membre à l'essai
 
Avatar de schnourf
 
Inscription : mars 2003
Messages : 66
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 66
Points : 20
Points : 20
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.
schnourf est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h50.


 
 
 
 
Partenaires

Hébergement Web