сумма всех пакетов в файлах pcap

Я пытаюсь сделать простой скрипт bash для расчета пакетов, захваченных в файлах pcap, я использовал tcpdump для получения пакетов в каждом файле pcap и добавления их с помощью сценария bash, но он, похоже, не работает.

#!/bin/bash FILES=/share/capture/*.pcap sum =0 for f in $FILES do output=$(sudo tcpdump -r $f 2> /dev/null |wc -l) sum = $((output+ sum)) done echo $sum 

Не могли бы вы рассказать мне, что я делаю неправильно.

  • Монетный двор Linux: сделать «общедоступную интерактивную пусковую установку» только из корня sh?
  • Скрипт для обеспечения работы только одного экземпляра Oracle
  • как удалить последнюю черту пути каталога?
  • Параметры переменных окружения из файла
  • Как мне получить bash, чтобы дать соответствующую ошибку для файла с окончанием строки Windows?
  • -ksh: income_ext.ksh: не найден
  • заполнить базу данных mySQL текстовой информацией
  • Может ли кто-нибудь уточнить для меня о глобальной переменной в этом сценарии оболочки?
  • 2 Solutions collect form web for “сумма всех пакетов в файлах pcap”

     #!/bin/bash files=(/share/capture/*.pcap) #echo $files sum=0 for f in "${files[@]}" do output=`sudo tcpdump -r $f 2> /dev/null | wc -l` sum=$((output + sum)) done echo $sum 

    Просто запустите wc -l на выходе для всех файлов:

     #!/bin/bash - files=(/share/capture/*.pcap) for f in "${files[@]}"; do tcpdump -qr "$f" 2> /dev/null done | wc -l 

    Смотрите также:

     capinfos -rTc "${files[@]}" capinfos -rTc "${files[@]}" | cut -f2 | paste -sd + | bc 

    (предполагая, что имена файлов не содержат символов TAB или NL).

    Обратите внимание, что вы делаете:

     FILES=/share/capture/*.pcap 

    Вы назначаете строку /share/capture/*.pcap , а не список файлов в $FILES . Этот шаблон glob расширяется, когда $FILES ссылается на некорректные (оператор split + glob ). Позже вы также оставите $f неуказанным, поэтому снова вызовите оператор split + glob. Поэтому, если $f содержит пустые символы или другие дикие карты, он снова будет расширен для других файлов. Лучше всего использовать массив здесь и убедитесь, что вы указали все свои переменные.

    Linux и Unix - лучшая ОС в мире.