Конвертировать с помощью tshark через командный скрипт - PullRequest
0 голосов
/ 20 февраля 2019

Я пытаюсь cronjob конвертировать файлы с tshark.

. На данный момент это мой скрипт:

files=$(find /home/user/traces/*.pcap -mmin +10 -type f)
echo "$files" | tshark -r - -T ek > '/home/user/traces/converted/'-.json

Я пытаюсь конвертировать файлы старшечем 10 минут, и поместите их в папку converted.

Но это не удается с помощью:

tshark: The standard input isn't a capture file in a format TShark understands.

Я думаю, что передача имен файлов в tshark не удалась, но не уверен.

Для справки, эта единственная команда работает:

tshark -r /home/user/traces/trace.pcap -T ek > /home/user/traces/converted/trace.pcap.json

ОБНОВЛЕНИЕ

Кажется, для работы с циклом:

files=$(find /home/user/traces/*.pcap -mmin +10 -type f)

for file in $files
do
  echo "processing file: $file"
  tshark -r $file -T ek > "$file.json"
done

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

-r <infile>

Чтение данных пакета из infile, может быть любой поддерживаемый формат файла захвата (включая файлы gzip).Здесь можно использовать именованные каналы или stdin (-), но только с определенными (не сжатыми) форматами файлов захвата (в частности: теми, которые можно читать без поиска назад).

TShark не делаетиспользуйте его стандартный ввод (-), чтобы прочитать файл с именем файла, но прочитать содержимое файла, например:

cat file.pcap | tshark -r - -T ek > "other-file.json"

В вашем случае, поскольку вам нужно, чтобы выходное имя файла было отдельным, я бы предложил использоватьцикл, как в этом сообщении Stackexchange .

0 голосов
/ 20 февраля 2019

$ files включает файлы построчно.Я считаю, что несколько файлов не могут быть захвачены с echo "$files" | tshark -r -.

Кажется, вам нужен цикл

IFS=$'\n'       # make newlines the only separator
for f in $files    
do
    ...
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...