3

Я запускаю netstat -s на своем компьютере с Ubuntu, чтобы получить статистику сетевого интерфейса. Там напечатано несколько цифр, например:

Ip:
    10256 total packets received
    8 with invalid addresses
    0 forwarded
    0 incoming packets discarded
    10247 incoming packets delivered
    8918 requests sent out
    63 dropped because of missing route
Icmp:
    0 ICMP messages received
    0 input ICMP message failed.
    ICMP input histogram:
    55 ICMP messages sent
    0 ICMP messages failed
    ICMP output histogram:
        destination unreachable: 55
IcmpMsg:
        OutType3: 55
Tcp:
    378 active connections openings
    0 passive connection openings
    5 failed connection attempts
    17 connection resets received
    30 connections established
    8478 segments received
    8223 segments send out
    26 segments retransmited
    0 bad segments received.
    33 resets sent
Udp:
    911 packets received
    55 packets to unknown port received.
    0 packet receive errors
    893 packets sent
UdpLite:
TcpExt:
    85 TCP sockets finished time wait in fast timer
    182 delayed acks sent
    Quick ack mode was activated 11 times
    16 packets directly queued to recvmsg prequeue.
    22002 bytes directly received in process context from prequeue
    5397 packet headers predicted
    11 packets header predicted and directly queued to user
    922 acknowledgments not containing data payload received
    477 predicted acknowledgments
    2 congestion windows recovered without slow start by DSACK
    16 congestion windows recovered without slow start after partial ack
    24 other TCP timeouts
    11 DSACKs sent for old packets
    11 DSACKs received
    8 connections reset due to unexpected data
    7 connections reset due to early user close
    TCPDSACKIgnoredNoUndo: 1
    TCPSackShiftFallback: 18
    IPReversePathFilter: 1
IpExt:
    InMcastPkts: 65
    OutMcastPkts: 21
    InBcastPkts: 836
    InOctets: 8228049
    OutOctets: 1814741
    InMcastOctets: 13209
    OutMcastOctets: 4122
    InBcastOctets: 102775

Можно ли как-то определить период времени, за который была собрана эта статистика?

1 ответ1

2

Глядя на соответствующий исходный код netstat или используя strace -e open netstat -s , можно увидеть, что вышеуказанная информация получена из /proc/net/snmp и /proc/net/netstat . Эта информация о proc-fs заполняется сетевым стеком Linux и инициализируется в net/ipv4/proc.c. Эта часть ядра, если она включена, начинает функционировать при загрузке ядра.

Поскольку вы не указали точный ответ, который вы ищете, и, если коротко, я полагаю, что вы, возможно, будете достаточно довольны этим:

uptime

Вы также можете получить его в секундах с разрешением, используя что-то вроде:

set -- $(grep btime /proc/stat) && btime = $2
bc -l < <(printf "%s - %s\n" "$(date +%s)" "$btime")

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .