Oleg Ovcharenko Asked:2020-11-06 00:03:09 +0000 UTC2020-11-06 00:03:09 +0000 UTC 2020-11-06 00:03:09 +0000 UTC 重击。获取通过网络接收和发送的字节总数的脚本 772 您需要编写一个脚本,该脚本将通过网络接收(接收 | 传输)字节的总数,并将字符串写入文件。 文件格式 <当前时间和日期> <接收的字节数> <发送的字节数> <当前时间和日期> <接收的字节数> <发送的字节数> ... linux 2 个回答 Voted Best Answer Hellseher 2020-11-11T06:06:32Z2020-11-11T06:06:32Z 晚上好, 您可以直接从 /sys/class/INTERFACE/statistics/tx_bytes,rx_bytes 文件中读取数据,但问题是这些数据仅来自系统启动的那一刻。 从每个接口收集数据的没有特殊依赖关系的脚本示例(问题未指定是否应考虑系统可用的所有接口)。 #!/usr/bin/env bash # Rx received (download) # Tx transmitted (upload) main() { interfaces="$(ls /sys/class/net -I "lo" -I "vir*")" for i in $interfaces; do tx_bytes="$(</sys/class/net/"$i"/statistics/tx_bytes)" rx_bytes="$(</sys/class/net/"$i"/statistics/rx_bytes)" printf "<%s><%s><%s><%s>\n" "$(date)" "$i" "$rx_bytes" "$tx_bytes" done } main "$@" >> /path/to/data.log # End of script 文件内容: <Fri 10 Nov 21:53:23 GMT 2017><enp2s0><4053647813><103337400> <Fri 10 Nov 21:53:23 GMT 2017><tap0><26173605><2178109097> <Fri 10 Nov 21:53:21 GMT 2017><enp2s0><4053647182><103336765> <Fri 10 Nov 21:53:21 GMT 2017><tap0><26173605><2178109045> <Fri 10 Nov 21:53:19 GMT 2017><enp2s0><4053647182><103336765> <Fri 10 Nov 21:53:19 GMT 2017><tap0><26173605><2178108993> <Fri 10 Nov 21:53:17 GMT 2017><enp2s0><4053646958><103336409> <Fri 10 Nov 21:53:17 GMT 2017><tap0><26173605><2178108941> <Fri 10 Nov 21:50:54 GMT 2017><enp2s0><103208421><4052071629> <Fri 10 Nov 21:50:54 GMT 2017><tap0><2178105197><26173605> 以所需的时间间隔将其添加到 cron。 jfs 2020-11-11T11:47:49Z2020-11-11T11:47:49Z 您可以使用现成的实用程序来监控网络流量。vnstat: $ vnstat -m eth1 / monthly month rx | tx | total | avg. rate ------------------------+--------------+--------------+--------------- Nov '08 74.94 GiB | 96.48 GiB | 171.42 GiB | 554.76 kbit/s Dec '08 279.32 GiB | 276.05 GiB | 555.37 GiB | 1.74 Mbit/s Jan '09 324.34 GiB | 413.38 GiB | 737.72 GiB | 2.31 Mbit/s Feb '09 273.73 GiB | 362.49 GiB | 636.22 GiB | 2.21 Mbit/s Mar '09 353.50 GiB | 270.03 GiB | 623.53 GiB | 1.95 Mbit/s Apr '09 361.74 GiB | 365.01 GiB | 726.74 GiB | 2.35 Mbit/s May '09 345.62 GiB | 440.43 GiB | 786.05 GiB | 2.46 Mbit/s Jun '09 758.45 GiB | 359.30 GiB | 1.09 TiB | 3.62 Mbit/s Jul '09 609.40 GiB | 282.21 GiB | 891.61 GiB | 2.79 Mbit/s Aug '09 17.13 GiB | 10.50 GiB | 27.63 GiB | 2.81 Mbit/s ------------------------+--------------+--------------+--------------- estimated 556.15 GiB | 340.85 GiB | 897.00 GiB | 支持各种输出格式。
晚上好,
您可以直接从 /sys/class/INTERFACE/statistics/tx_bytes,rx_bytes 文件中读取数据,但问题是这些数据仅来自系统启动的那一刻。
从每个接口收集数据的没有特殊依赖关系的脚本示例(问题未指定是否应考虑系统可用的所有接口)。
文件内容:
以所需的时间间隔将其添加到 cron。
您可以使用现成的实用程序来监控网络流量。vnstat:
支持各种输出格式。