Как вы указали, в документации нет ничего о счетчике "пакеты, отброшенные интерфейсом". Итак, нам нужно немного покопаться в исходном коде.
Из исходного кода 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));
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/*
Спасибо, Steeldriver, я исправил это, используя приведенный ниже синтаксис
yesterday_day="$(date -d '-1 day' '+%-d')"
yesterday_month="$(date -d '-1 day' '+%b')"
yesterday="${yesterday_month} ${yesterday_day}"
и теперь вы можете добавлять туда любые пробелы
Проблема не имеет ничего общего с самой командой date
(просто вставьте пробел в строку формата любым способом ). Проблема заключается в echo
и в том, как вы делаете , а не цитируете расширение $custom_format
.
Если вы не заключаете $custom_format
в кавычки, оболочка разделит его значение на слова на основе символов в$IFS
(пробеле, табуляции и новой строке по умолчанию ), а затем выполнит генерацию имени файла (подстановку )на полученные слова.
Это означает, что ваша команда echo $custom_format
будет преобразована во что-то вроде echo Oct 9
, которая echo
вызывается с двумя аргументами, независимо от того, сколько пробелов между ними, и echo
будет выводить каждый, один после другой, с одним разграничивающим пробелом в -между ними.
Чтобы получить нужный результат, используйте двойные кавычки вокруг $custom_format
при вызове echo
с ним в качестве аргумента.
См. также