从命令
watch -n1 "ifconfig eth0 | grep GiB"
我给出了下面的输出。
现在我只想要 (GiB) 之前的最后 5 位数字。我为此编写了一个正则表达式,它似乎工作
(\d{1,4})(?!.*\d)\sGiB
唯一的问题是我无法使用上面显示的命令?我正在使用 ubuntu,有什么帮助吗
答案1
如果服务器重新启动或非常繁忙,您的测试将会中断:ifconfig
根据传输的数据量来缩放其使用的单位。例如,我管理的服务器有以下内容:
RX bytes:8697322454215 (7.9 TiB) TX bytes:2151364718288 (1.9 TiB)
您可能会发现查看 的内容更容易/proc/net/dev
,这是ifconfig
它的数据来源。其内容如下所示
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
eth0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
lo: 1204278 13020 0 0 0 0 0 0 1204278 13020 0 0 0 0 0 0
wlan0: 658883131 568453 0 0 0 0 0 0 56092206 420036 0 0 0 0 0 0
答案2
尝试 sed:
| sed 's/.*(\([0-9.]*\s\)GiB)\s.*/\1/'