Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3469 connectés 

 


Dernière réponse
Sujet : probleme de cron
syl94 a priori oui :)

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
syl94 a priori oui :)
jlighty Content que ça marche :),
donc l'origine du problème était bien l'accès concurrentiel au fichier dump entre Ethereal et cron
syl94 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!
syl94 super. Merci! Je te dis ca demain du taff
jlighty une boucle de ce style :

Code :
  1. for fichier in `ls | fgrep dump`; do
  2.   if [ `du -k "$fichier"` > 4000 ]; then chown ... fi
  3. done;

syl94 exact. $OUTFILE est du type dump_yyyymmddhhmmss.txt
 
je vais adopter le du -k sur dump_*.txt ca devrait le faire
jlighty 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
syl94 donc quelque chose du genre  
 

Code :
  1. if [ $OUTFILE > 4000000 ];then chown bla.bla $OUTFILE;fi


 
La valeur de filesize est en kilo, mais j'ai un doute sur la syntaxe :/

jlighty 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
syl94 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
jlighty 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" )
syl94 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 :)
jlighty 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 ?
syl94

Code :
  1. # /etc/crontab: system-wide crontab
  2. # Unlike any other crontab you don't have to run the `crontab'
  3. # command to install the new version when you edit this file.
  4. # This file also has a username field, that none of the other crontabs do.
  5. SHELL=/bin/sh
  6. PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
  7. # m h dom mon dow user  command
  8. 25 6    * * *   root    test -e /usr/sbin/anacron || run-parts --report /etc/cron.daily
  9. 47 6    * * 7   root    test -e /usr/sbin/anacron || run-parts --report /etc/cron.weekly
  10. 52 6    1 * *   root    test -e /usr/sbin/anacron || run-parts --report /etc/cron.monthly
  11. #
  12. # Ethereal pour dump des connexions FTP via screen
  13. 00 09 * * * root /usr/local/libexec/ethereal.sh
  14. # Kill du screen tethereal
  15. 00 17 * * * root /usr/local/libexec/stop_ethereal.sh
  16. # change owner/group des fichiers
  17. */1 * * * * root /usr/local/libexec/chg_ower_dump.sh

jlighty tu pourrais me montrer le contenu de la crontab ?
syl94 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
jlighty

Citation :

j'ai activé le log de cron


justement que t'indique les logs de cron ?

syl94 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!

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)