Chaque fois que je lance manuellement tcpdump
, je dois utiliser Ctrl + C pour l’arrêter. Maintenant, je veux planifier mon tcpdump
avec cronjob et j’en ai seulement besoin pour une heure et demie. Sans exécuter manuellement 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 travail cron pour tuer le processus tcpdump
, mais cela ne semble pas être une bonne idée.
Vous pouvez combiner -G {sec}
(faire pivoter les fichiers de vidage toutes les x secondes) et -W {count}
(nombre limite de fichiers de vidage) pour obtenir ce que vous voulez:
tcpdump -G 15 -W 1 -w myfile -i eth0 'port 8080'
courrait pendant 15 secondes et s’arrêterait ensuite. Tourner 1,5 heure en secondes et cela devrait fonctionner.
vous pourriez utiliser le timeout
timeout 5400 tcpdump -i eth0 'port 8080' -w myfile
Vous pourriez 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