Ubuntu16.04とUbuntu17.01 ifconfig形式の違いを克服する

Ubuntu16.04とUbuntu17.01 ifconfig形式の違いを克服する

背景:

ifconfigコマンドを使用して、Linuxで利用可能なインターフェイスのリストを確認しています。

ただし、ifconfigの出力形式はUbuntu 16.04とUbuntu 17.10で異なります。

追加のチェックにより、ubuntu17.10のnet-toolsパッケージがアップグレードされ(net-tools 1.60からnet-tools 2.10-alphaへ)、最新のifconfigはコロン( ':')を含むネットワークインタフェース名を出力します。以前のバージョンの場合:

$ ifconfig --version net-tools 1.60 ifconfig 1.42 (2001-04-13)

$ifconfig

enp0s3リンクカプセル:イーサネット

最新バージョンの場合

$ ifconfig --version net-tools 2.10-alpha

$ifconfig

ens160: フラグ=4163 mtu 1500

チャジャン: フラグ=73 mtu 65536

これにより、出力で追加の「:」を考慮または予想するいくつかのツールが中断される可能性があります。

質問:

ifconfig出力形式への変更がそれを使用するツールに影響を与えないように、安定した方法でネットワークインタフェースのリストを取得する方法はありますか? ifconfigを一貫した方法で使用する代替方法はありますか?

ベストアンサー1

これネットワークツールパッケージは廃止しばらくはiproute2(ipパッケージの基本ツール)に置き換えられました。多くのディストリビューションには、デフォルトのインストールの一部としてネットワーキングツールが含まれなくなりました。

その後、ネットワークツールの開発が再開されましたが、これはDebian 9.0システムで見られるように、互換性が損なわれるように多くのツールが改善されましたifconfigNEWS.Debian.gz

15年間のアップストリーム開発が中断された後、net-toolsが再開発され、多くの長い問題を解決しています。悪いニュースは、多くのコマンドの出力が変更され、解析に依存するスクリプトが確実に中断されることです。

したがって、iproute2ツールを使用するようにスクリプトを調整することをお勧めします。たとえば、ip link上記のような情報を提供する必要がありますifconfig。このアプローチの1つの欠点は、Linux以外のシステムとの互換性が壊れ、ほとんどすべてのLinux以外のシステムですifconfig

おすすめ記事