Linux
獲取 MTU 值的最佳方法是什麼
我正在使用以下方法查找 mtu 值
ifconfig | grep mtu eno17832: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9000 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
但是在我的 bash 腳本中,我們想確切地知道 MTU 值
所以我們可以使用這個
MTU_VAL=` ifconfig | grep mtu | head -1 | awk '{print $NF}' `
但這可能有風險而且沒有那麼優雅
請讓我知道我們是否可以確定擷取 MTU?
大多數工具利用 /proc 或 /sys 中存在的資訊,關於 ifconfig 我將使用
/sys/class/net/<interface>/*
文件:要為除環回()之外的所有介面獲取 mtu,
lo
這將起作用:cat /sys/class/net/[^l][^o]*/mtu
排除是通過 shell globing 完成的,任何不以 l 開頭然後 o 的內容都會被擴展,然後讀取其中的 mtu 文件。如果除了環回之外只有一個介面,它將返回其 mtu 作為單個值,可在腳本中
$()
用於將輸出放入變數中。要回答評論:
$ awk '{split(FILENAME,arr,"/"); print arr[5],$1}' /sys/class/net/*/mtu ens160 1500 lo 65536
與上面相同的模式匹配以在需要時排除
lo
(我將其保留在這里以展示多個介面輸出)。