пробелы между форматом даты

Как вы указали, в документации нет ничего о счетчике "пакеты, отброшенные интерфейсом". Итак, нам нужно немного покопаться в исходном коде.

Из исходного кода tcpdump счетчик отбрасывания интерфейса извлекается изstats.ps_ifdrop:

if (stats.ps_ifdrop != 0) {
    if (!verbose)
        fputs(", ", stderr);
    else
        putc('\n', stderr);
    (void)fprintf(stderr, "%u packet%s dropped by interface\n",
        stats.ps_ifdrop, PLURAL_SUFFIX(stats.ps_ifdrop));

Из man pcap _статистика:

ps_ifdrop
    number of packets dropped by the network interface or its driver.

И из исходного кода libpcap:

 *  "ps_ifdrop" is supported. It will return the number
 *  of drops the interface reports in /proc/net/dev,
 *  if that is available.

Таким образом, счетчик tcpdump «пакеты, отброшенные интерфейсом» соответствует количеству пакетов, зарегистрированных как отброшенные в /proc/net/devво время tcpdumpзахвата .

Значение полей /proc/dev/netобъясняется здесь

Чтобы лучше понять дроп, я бы начал со следующей статистики:

  • ethtool -S
  • grep '' /sys/class/net//statistics/*

0
10.10.2019, 14:35
2 ответа

Спасибо, Steeldriver, я исправил это, используя приведенный ниже синтаксис

yesterday_day="$(date -d '-1 day' '+%-d')"
yesterday_month="$(date -d '-1 day' '+%b')"
yesterday="${yesterday_month}   ${yesterday_day}"

и теперь вы можете добавлять туда любые пробелы

0
28.01.2020, 02:39

Проблема не имеет ничего общего с самой командой date(просто вставьте пробел в строку формата любым способом ). Проблема заключается в echoи в том, как вы делаете , а не цитируете расширение $custom_format.

Если вы не заключаете $custom_formatв кавычки, оболочка разделит его значение на слова на основе символов в$IFS(пробеле, табуляции и новой строке по умолчанию ), а затем выполнит генерацию имени файла (подстановку )на полученные слова.

Это означает, что ваша команда echo $custom_formatбудет преобразована во что-то вроде echo Oct 9, которая echoвызывается с двумя аргументами, независимо от того, сколько пробелов между ними, и echoбудет выводить каждый, один после другой, с одним разграничивающим пробелом в -между ними.

Чтобы получить нужный результат, используйте двойные кавычки вокруг $custom_formatпри вызове echoс ним в качестве аргумента.

См. также

1
28.01.2020, 02:39

Теги

Похожие вопросы