複数のシステム(より正確には2つ)で特定のネットワークインターフェイスの名前を知る必要があるカスタムソフトウェアがあります。「一貫したネットワークデバイスの命名」を無効にするなど、何も変更できません。一部のシステムではNetwork Managerのこの新機能を使用していますが、他のシステムでは、一貫したネットワークデバイスの命名がデバイスで有効になっていることを確認する方法がわかりません。
100%動作するシステムバージョンを使用できますが、これは非常にハッキングされたソリューションなので、機能が実行されているかどうかを知らせるいくつかのLinuxコマンドなど、よりエレガントなものが必要です。
システムはubuntu 16.04(以前の名前指定スキームを使用するシステム)とCentOS 7(一貫したネットワークデバイスの命名を使用するシステム)です。
答え1
デバイスが存在するかテスト
最も簡単な方法は、ネットワークデバイスの存在と名前をテストすることです。だから、実行
ip l
その後、ネットワークデバイスeth0
などが存在する場合は、以前の命名方式がありますeth1
。wlan0
名前が長い場合は、enp[0-9]s[0-9]
新しい一貫したスキームを使用できます。
これをスクリプト化するにはテストできます(ここではイーサネットテスト)。
# test for new, consistent naming scheme
if ( "`ip l | egrep 'enp[0-9][1-9]?s[0-9][1-9]?:' | wc -l`" != "0" ) then
(シェルif
構文を使い続けてください。何を持っているのかわかりません)。
または(従来のイーサネットおよびWi-Fiテスト):
# test for old naming scheme
if ( "`ip l | egrep '(eth|wlan)[0-9][1-9]?:' | wc -l`" != "0" ) then
古いソリューションをテストするため。
実際にsystemd
テストしたいかもしれませんが、systemd
設定によってデフォルトの動作を変更できます。