Dieser Beitrag enthält ein Beispielskript, das erkennt, welche Schnittstellen auf dem System konfiguriert sind und welche darin Verbindungen haben und mit welcher Geschwindigkeit sie arbeiten. Beachten Sie, dass die gemeldete Geschwindigkeit innerhalb virtueller Maschinen möglicherweise nicht korrekt ist. Ein virtualisierter Netzwerkadapter muss so tun, als hätte er eine „Geschwindigkeit“, weil das Betriebssystem dies erwartet, aber weil er virtuell ist, läuft er so schnell, wie es der Virtualisierungshost und das physische Netzwerk zulassen, unabhängig von der Geschwindigkeit, die die virtuelle Netzwerkkarte meldet.
Die gemeldete „Geschwindigkeit“ ist nur eine Zahl, um Tools (z. B. ethtool unter Linux) in die Lage zu versetzen, etwas zu melden; Es begrenzt nicht die tatsächliche Geschwindigkeit der Datenübertragung. Ignorieren Sie die von der virtuellen NIC auf der VM gemeldete Geschwindigkeit und behandeln Sie die Geschwindigkeit als abhängig vom Virtualisierungshost und dem physischen Netzwerk.
Das Drehbuch
1. Das Skript ermittelt, welche Netzwerkschnittstellen aktiv sind und deren Geschwindigkeit.
2. Es meldet die virtuellen Schnittstellen, erkennt aber keine Geschwindigkeit für sie.
3. Das Skript wird auch Bindungsschnittstellen melden.
– Kopieren Sie das folgende Skript auf Ihren Server:
# vim detect-speed.sh #!/bin/bash for net_dev in `find /sys/class/net/ -type l`; do # only need filename without path net=`basename $net_dev` speed=`ethtool $net | grep Speed | cut -d ':' -f 2 | tr -d " "` link=`ethtool $net | grep "Link detected" | cut -d ':' -f 2 | tr -d " "` # print result if [[ "$link" != "yes" ]]; then echo "interface $net has no link detected" else if [[ "$speed" == "" ]]; then echo "interface $net has link detected but no speed (virtual ?)" else echo "interface $net has link detected with speed $speed" fi fi done
– Stellen Sie sicher, dass Sie dem Skript auch die Ausführungsberechtigung erteilen:
# chmod +x detect-speed.sh
Beispielausgabe
Unten sehen Sie eine Beispielausgabe des Skripts. Ihre Ausgabe kann je nach Anzahl der Netzwerkschnittstellen und deren Verbindungsgeschwindigkeiten abweichen.
# ./detect-speed.sh interface vif3.0 has link detected but no speed (virtual ?) interface vif10.0 has link detected but no speed (virtual ?) interface 0aacd800 has link detected but no speed (virtual ?) interface p2p1.2 has link detected with speed 1000Mb/s interface bond0 has link detected with speed 1000Mb/s interface p2p1 has link detected with speed 1000Mb/s interface p4p1 has link detected with speed 1000Mb/s interface lo has link detected but no speed (virtual ?) interface em1 has link detected with speed 1000Mb/s