probleme de cron - Linux et OS Alternatifs
Marsh Posté le 12-05-2005 à 22:00:05
Citation : j'ai activé le log de cron |
justement que t'indique les logs de cron ?
Marsh Posté le 12-05-2005 à 22:12:51
rien justement .. je vois bien l'évenement de l'execution du script qui change les permissions sur les fichiers, puis plus rien ... pas d'erreur ou de warning, ni dans /var/log/messages ou /var/log/syslog
Marsh Posté le 12-05-2005 à 22:17:02
Code :
|
Marsh Posté le 12-05-2005 à 22:24:06
le faite d'appeler chg_ower_dump toutes les minutes sachant que ethereal écrit dans ce fichier peut peut être provoquer un plantage.
Si tu changes le propriétaire du fichier uniquement quand tu appelles stop_ethereal cela fonctionne ?
Marsh Posté le 12-05-2005 à 22:27:45
j'ai pas testé. Le probleme est que mon client peut venir récupérer les dumps a n'importe quel moment. Cela dit, vu que c'est bancale actuellement, je vais faire le test dès demain (machine en prod).
Merci
Marsh Posté le 12-05-2005 à 22:32:15
ce que tu peux faire :
au lieu de sauvegarder uniquement le dump dans un seul fichier, tu le réparties sur plusieurs fichiers ("use ring buffer" )
Marsh Posté le 12-05-2005 à 22:39:47
oui, c'est ce que je fais, mais je l'ai pas precisé, désolé
/usr/bin/screen -A -m -d -S ethereal $ETHEREAL -i eth0 -n -p -q -a filesize:4000 -b 100 -w $OUTFILE host xxx.xxx.xxx.xxx and port 21
Marsh Posté le 12-05-2005 à 22:44:49
donc il faut changer les permissions des dumps qui ne sont pas en cours d'écriture
donc tout fichier de taille < 4000 octets ? ne doivent pas être soumis à un chown
if [ `du -b <fichier_dump>` gt 4000 ]
chown <user> <fichier_dump>
fi
Marsh Posté le 12-05-2005 à 22:55:08
donc quelque chose du genre
Code :
|
La valeur de filesize est en kilo, mais j'ai un doute sur la syntaxe
Marsh Posté le 12-05-2005 à 22:59:01
si c'est en ko -> du -k <fichier>
comment est "contruit" $OUTFILE ?
car il me semble que $OUTFILE est un nom de fichier donc tu ne pourras pas faire $OUTFILE > 4000000
par contre if [ `du -k "$OUTFILE"` > 4000 ]; then chown ... fi
Marsh Posté le 12-05-2005 à 23:03:22
exact. $OUTFILE est du type dump_yyyymmddhhmmss.txt
je vais adopter le du -k sur dump_*.txt ca devrait le faire
Marsh Posté le 12-05-2005 à 23:05:34
une boucle de ce style :
Code :
|
Marsh Posté le 16-05-2005 à 13:57:05
petit UP pour completer la solution
ton script fonctionne nickel jlighty, j'ai juste du rajouter un chmod 660 dans la boucle sur les dumps générés par tethereal
ma cron reste bien active et les droits sont correctement alloués
Merci!
Marsh Posté le 16-05-2005 à 17:20:22
Content que ça marche ,
donc l'origine du problème était bien l'accès concurrentiel au fichier dump entre Ethereal et cron
Marsh Posté le 12-05-2005 à 21:51:51
Hello
j'ai placé dans ma crontab 3 scripts bash dans un contexte d'utilisation de tethereal pour sniffer des paquets sur une connexion FTP qui s'effectue depuis une IP fixe vers mon serveur.
Mon premier script lance tethereal via screen à 9h du matin.
Mon second script change le owner/group toutes les minutes des dumps effectués par tethereal afin qu'il soit lisible par un autre user
Mon troisieme script stop tethereal à 17h
Si j'execute mes scripts à la main, aucun probleme, tout se passe normalement.
Si je laisse tourner ma crontab, le script qui lance tethereal s'execute, et le script qui change le owner/group sur les dumps fonctionne (j'ai activé le log de cron). Puis, au bout de 3 à 4 minutes, plus rien. Mon screen avec tethereal est toujours dans les process mais un `ps aux | grep cron` m'indique que cron ne tourne plus ! Je dois alors le relancer via /etc/init.d, et ca repart pour fonctionner pendant 3 à 4 minutes, et rebelote, plantage ..
Je precise que j'ai mis le chemin complet vers les commandes dans mes script (/usr/bin/tethereal, /usr/bin/screen,...), les scripts sont bien executables.
OS : Debian Stable.
Merci!
Message édité par syl94 le 12-05-2005 à 21:53:05