Problême de nommage de fichier TCPDUMP avec l'option -w


#1

Bonjour,

J’ai un petit soucis avec TCPDUMP:
Je voudrais capturer les paquets à partir d’une station debian en indiquant la date de début de capture pour les fichiers correspondants, j’ai donc utilisé cette ligne de commande :

$sudo tcpdump -C 1 -i eth0 -w /home/stef/tcpdump-files/test-$(date +%D-%T)

Le problême est que le systême refuse de lancer la capture car le fichier ou repertoire n’existe pas.
Je n’ai pas de problême si je n’essaie pas de metttre la date et l’heure de la capture, mais vu que ca va tourner quelques mois, je prefèrerais afficher cette information sur les noms des fichiers de capture.

Il y a t-il une astuce?


#2
file=/blabla/`date +%s`
tcpdump ... -w ${file}

#3

plus simplementsudo tcpdump -C 1 -i eth0 -w /home/stef/tcpdump-files/test-`date +%D-%T` doit aussi marcher.


#4

Sauf que le date te rajoute des / dans le nom de ton fichier, et je pense que bash le vit mal vu qu’il doit interpréter ça comme des séparations de répertoires.


#5

slt all,

Pourquoi autant de reflexion, l’option “-tttt” permet d’avoir la date et l’heure :

2006-04-18 15:53:21.696672 IP (tos 0x10, ttl 64, id 31586, offset 0, flags [DF], proto: TCP (6), length: 52) roxor.32807 > 192.168.15.19.ssh: ., cksum 0x2327 (correct), 49:49(0) ack 5888 win 63712 <nop,nop,timestamp 34044356 1596294640>


#6

[quote=“stonfi”]slt all,

Pourquoi autant de reflexion, l’option “-tttt” permet d’avoir la date et l’heure :

2006-04-18 15:53:21.696672 IP (tos 0x10, ttl 64, id 31586, offset 0, flags [DF], proto: TCP (6), length: 52) roxor.32807 > 192.168.15.19.ssh: ., cksum 0x2327 (correct), 49:49(0) ack 5888 win 63712 <nop,nop,timestamp 34044356 1596294640>[/quote]
l’option -tttt de quoi ?

bobX: tu as raison, je n’avais même pas testé, c’etait juste parceque je ne comprenais pas le besoin d’ed de faire ça sur deux lignes avec une variable intermediaire, mais bien sûr qu’un / dans le nom pose pb…


#7

slt,

Oops l’option de tcpdump.


#8

Oui, mais meme sans t’option de tcpdump, t’as toujours le timestamp en début de ligne, mais pas dans le nom du fichier de sortie. Mais je crois pas trop que ce soit ce qu’il cherche.


#9

Tout d’abord merci à tous pour toutes ces réponse qui m’ont bien aiguillées.

Le problême venait en fait du paramête %D de date qui ajoute des / dans le nom de fichier, ce qui induit un chemin qui n’existe pas (…comme le disait bobX (bien ouèj :smiley: ) ).

J’ai donc utilisé des paramètres qui n’insère pas de / pour indiquer la date et l’heure de capture de fichier, j’en arrive à cette ligne:

sudo tcpdump -C 1 -i eth0 -w /home/stef/tcpdump-files/test-$(date +%a-%d-%b-%T)

J’ai remplacé %D par %a %d et %b et j’ai des fichiers sans / qui ressemble à ca :
test-mer-19-avr-13:32:21

bref maintenant on sais où on habite.

Encore merci à tous

PS: J’ai testé avec ‘date +%D %T’ et “date +%D %T” mais dans ce cas les fichiers sont nommées [test-date +%D %T]


#10

suite à ton PS:
oui, parceque tu utilisais des ’ et des " , mais l’evaluateur (l’equivalent de $(…) ), c’est le (backquote = altGR+7). c.à.d. sudo tcpdump -C 1 -i eth0 -w /home/stef/tcpdump-files/test-$(date +%a-%d-%b-%T) <=> sudo tcpdump -C 1 -i eth0 -w /home/stef/tcpdump-files/test-date +%a-%d-%b-%T`


#11

Ah oui, comme quoi se sont toujours les détails qui font la différence.

Merci