Chaque fois que j'exécute manuellement tcpdump
, je dois utiliser Ctrl+C pour l'arrêter. Maintenant, je veux planifier mon tcpdump
avec cronjob et je n'en ai besoin que pour 1 heure et demie. Sans exécution manuelle Ctrl+C ou kill, comment peut-il être arrêté automatiquement? Voici la commande que je teste:
tcpdump -i eth0 'port 8080' -w myfile
Je peux planifier un autre cronjob pour tuer le processus tcpdump
, mais cela ne semble pas être une bonne idée.
Vous pouvez combiner -G {sec}
(rotation des fichiers de vidage toutes les x secondes) et -W {count}
(nombre limité de fichiers de vidage) pour obtenir ce que vous voulez:
tcpdump -G 15 -W 1 -w myfile -i eth0 'port 8080'
fonctionnerait pendant 15 secondes puis s'arrêterait. Transformez 1,5 heures en secondes et cela devrait fonctionner.
vous pouvez utiliser le délai d'expiration
timeout 5400 tcpdump -i eth0 'port 8080' -w myfile
Vous pouvez le faire comme ceci:
tcpdump -i eth0 'port 8080' -w myfile &
pid=$!
sleep 1.5h
kill $pid
L'approche qui a fonctionné le mieux pour moi sur Ubuntu 14.04
Sudo -i
crontab -e
puis ajoutez la ligne
30 17 * * * /usr/sbin/tcpdump -G 12600 -W 1 -s 3000 -w /home/ubuntu/capture-file.pcap port 5060 or portrange 10000-35000
Remarques