Cet article fournit un exemple de script détectant quelles interfaces sont configurées sur le système, et dans celles-ci, lesquelles ont leurs liens et à quelle vitesse elles fonctionnent. Notez que la vitesse signalée dans les machines virtuelles peut ne pas être correcte. Un adaptateur réseau virtualisé doit prétendre avoir une "vitesse" parce que le système d'exploitation l'attend, mais comme il est virtuel, il fonctionnera aussi vite que l'hôte de virtualisation et le réseau physique le permettent, quelle que soit la vitesse signalée par la carte réseau virtuelle.
La "vitesse" signalée n'est qu'un nombre pour rendre les outils (par exemple ethtool sous Linux) capables de signaler quelque chose ; cela ne limite pas la vitesse réelle de transfert de données. Ignorez la vitesse signalée par la carte réseau virtuelle sur la machine virtuelle et traitez la vitesse comme dépendant de l'hôte de virtualisation et du réseau physique.
Le scénario
1. Le script déterminera quelles interfaces réseau sont opérationnelles et leur vitesse.
2. Il signale les interfaces virtuelles mais ne détecte aucune vitesse pour celles-ci.
3. Le script signalera également les interfaces de liaison.
– Copiez le script ci-dessous sur votre serveur :
# 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
– Assurez-vous de fournir également une autorisation exécutable au script :
# chmod +x detect-speed.sh
Exemple de sortie
Vous trouverez ci-dessous un exemple de sortie du script. Votre sortie peut varier en fonction du nombre d'interfaces réseau et de leurs vitesses de liaison.
# ./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