crontab

crontab - Linux et OS Alternatifs

Marsh Posté le 09-05-2005 à 11:45:33    

Voia un petit probleme avec crontab.
J'ais un petit script qui doit s'executer tout seul grace a crontab.
Ce petit script est sence kill un processus et le relance.
Lorsque je le lance a la mano il marche nickel, mais des qu'il s'execute par cron, il me kill bien le proc mais ne le relance pas.
 
voila si quelqu'un a une idée,
voila le script:
 
#! /bin/sh
if [ -f /var/run/snort* ] ; then
kill `more /var/run/snort*`
fi
 
snort -c /etc/snort/snort.conf -i eth1 -D -m 073
 

Reply

Marsh Posté le 09-05-2005 à 11:45:33   

Reply

Marsh Posté le 09-05-2005 à 12:06:45    

Bonjour,
redirige les erreurs vers un fichier dans la crontab pour voir où le problème se trouve.
spécifie aussi le chemin complet de snort (/usr/sbin/snort), la crontab ne doit pas prendre correctement le PATH (par exemple je fais appel à iptables par /sbin/iptables)


Message édité par jlighty le 09-05-2005 à 12:08:08
Reply

Marsh Posté le 09-05-2005 à 13:41:58    

j'ais rajoute le chemin complet, mon probleme reste toujours le meme.
dans les logs de crontab aucune erreurs.

Reply

Marsh Posté le 09-05-2005 à 13:50:35    

dans la crontab :
* * * * * <le script>  2>/home/<ma home>/script_log
 
cela va permettre de rediriger les erreurs d'exécution du script dans le fichier script_log car les logs de crontab ne sont pas très bavards

Reply

Marsh Posté le 09-05-2005 à 13:54:29    

J'ais fais aussi, mais strictement rien qui s'ecrit dedans, j'ais aussi rajoute les droit d'execution a tout le monde pour mon scrpit mais rien qui change.

Reply

Marsh Posté le 09-05-2005 à 14:04:36    

Je suis un abruti, c'est bon c'est resolu.
Je mettais gouré dans le chemin.
Merci.
Ca marche nickel ;)

Reply

Marsh Posté le 09-05-2005 à 14:42:13    

En fait nickel est un bien grand mot^^.
Voila mon nouveau probleme,
lorsque que je programme dans crontab mon script il s'excute me kill mon pocess et en relance un, mais me sort des erreurs.
Pour mieux comprendre, voila mon script:
 
#! /bin/sh
if [ -f /var/run/snort* ] ; then
kill -9 `more /var/run/snort_eth1.pid` 2> /home/admin/snort_log/kill.txt
/usr/local/bin/snort -c /etc/snort/snort.conf -i eth1 -D -m 073 2> /home/admin/snort_log/snort.txt
exit 0
 
else
/usr/local/bin/snort -c /etc/snort/snort.conf -i eth1 -D -m 073 2> /home/admin/snort_log/snort.txt
exit 0
fi
 
 
Donc quand je le lance a la main pas d'erreurs.
mais lorsque je le met dans crontab je regarde le fichier de log du kill et:
 
[root@Brique snort_log]# tail -f kill.txt
/etc/snort/cron/snort.sh: line 4: kill: ::::::::::::::: no such pid
/etc/snort/cron/snort.sh: line 4: kill: /var/run/snort_eth1.pid: no such pid
/etc/snort/cron/snort.sh: line 4: kill: ::::::::::::::: no such pid
 
Et je ne comprend pas ce que sont ces erreurs puisqu'il trouve bien le pid etant donne qu'il le kill. Mais c'est bien embetant puisqu'il m'envoi un mail a chaque erreurs!


Message édité par thefakir le 09-05-2005 à 14:42:54
Reply

Marsh Posté le 09-05-2005 à 14:44:17    

attention ne pas utiliser "more" mais plutôt "cat" car la commande more est interactive (si le contenu du fichier est grand) !


Message édité par jlighty le 09-05-2005 à 14:47:10
Reply

Marsh Posté le 09-05-2005 à 14:57:30    

ET bien vu plus d'erreur du cote de kill, bien que je ne comprend pas trop pourquoi puisque le fichier n'est pas gros du tout il ne contient que le numero du pid more n'est interactif que lorsque cela fais plus d'ue page?enfin ca marche....  
Par contre il m'envoie encore un mail ou il me dit que le fichier snort.sh.swp is not an executable plain file.
alors ca je sais pas du ca sort
precision snort.sh est le fichier que j'execute dans le crontab.

Reply

Marsh Posté le 09-05-2005 à 15:01:47    

le fichier snort.sh.swp ne serait-il pas un fichier temporaire de vim ?
essaye de fermer proprement vim (purge du fichier temporaire)
Concernant more, je ne connais pas son comportement dans un tel cas, j'ai toujours privilègié cat car si le fichier devient important (plus d'une page) le script plante


Message édité par jlighty le 09-05-2005 à 15:04:02
Reply

Marsh Posté le 09-05-2005 à 15:01:47   

Reply

Marsh Posté le 09-05-2005 à 15:05:16    

Je crois que tu a raison car ce matin vi ma fais un erreur du style:
attention trouve un fichier d'echange.....quand j'ouvrais snort.sh
et moi j'ais fais le bourrin:
rm snort.sh.swp, et apres plus d'erreur.
là je viens de faire un updatedb, puis locate snort.sh.swp et il trouve rien.
donc je sais pas d'ou peut venir l'erreur.


Message édité par thefakir le 09-05-2005 à 15:05:48
Reply

Marsh Posté le 09-05-2005 à 15:06:55    

Regarde dans le répertoire où le script a été conçu avec ls -a


Message édité par jlighty le 09-05-2005 à 15:08:07
Reply

Marsh Posté le 09-05-2005 à 15:08:21    

non rien:
[root@Brique cron]# ls -a
./  ../  snort.sh*

Reply

Marsh Posté le 09-05-2005 à 15:11:31    

quel est le programme qui tente d'exécuter snort.sh.swp ? (normalement ça doit être indiqué dans le mail)
cron ? (voir dans les logs de cron)
cela permettra d'obtenir le chemin complet du fichier  snort.sh.swp


Message édité par jlighty le 09-05-2005 à 15:13:26
Reply

Marsh Posté le 09-05-2005 à 15:18:45    

ben normalement aucun programme, cron il execute snort.sh
je viens de regarder les logs de cron il parle nulpart de snort.sh.swp

Reply

Marsh Posté le 09-05-2005 à 15:20:30    

et dans le mail y a t-il une indication quelconque ? (champs From et Subject)


Message édité par jlighty le 09-05-2005 à 15:21:52
Reply

Marsh Posté le 09-05-2005 à 15:26:38    

Ben il me disais pas plus que ce que j'ais ecrit plus haut surtout qu'il n'y en avais plus puisque avec le locate je ne trouve rien.
Enfin j'ais fait un mv de snort.sh en snort2.sh.
J'ais relance un cron et plus de message d'erreur.
Donc merci pour l'aide, mais je pense que c'est regle....J'espere!!!!
merci :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed