ネットワーク情報を取得するBashコマンド

ネットワーク情報を取得するBashコマンド

現在のネットワークを取得するにはbashコマンドが必要です帯域幅スループットそしてネットワークカードの稼働時間しかし、オンラインで有望なものが見つかりませんでした。

私はそれからそのような情報を取得しようとしましたが/proc/net/dev、そのファイルには各値が何を意味するのかについてのマニュアルがないようです。

そして、ほとんどのネットワーク監視ツールはgrep-ableまたはawk-ableではないため、スクリプトには適していません。

ベストアンサー1

こんにちは、stackexchangeへようこそ。

まず、「bashコマンド」を探しているのではなく、単にコマンドラインユーティリティを探しているのです。

第二に、これらのメトリックは時間の経過とともに収集され、ホストのリソースを消費する必要があるため、デフォルトでは実行されません。

ポーリングコマンドを使用して独自のインジケータを作成できますip -s link show <interface>。たとえば、次のようになります。

$ ip -s link show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether b8:ae:ed:72:f3:b3 brd ff:ff:ff:ff:ff:ff
    RX:    bytes   packets errors dropped  missed   mcast
    579827124444 443147837      0       0       0 2802393
    TX:    bytes   packets errors dropped carrier collsns
    153295015536 161518564      0       0       0       0

RX:その後、バイトとバイトは解析され、後で使用するTX:ために保存されます。一定時間が経過したら、この指標を再度読み、数と経過時間に基づいて必要な値を計算します。

ネットワークカードの稼働時間のために、ネットワークインターフェイスの状態変化を検出する必要があるかもしれません。インターフェイスの開始時間を追跡することは何もありません。

説明で説明したように、たとえば、いくつかのタスクを実行できるサードパーティのパッケージがありますが、ディストリビューションにデフォルトbwm-ngでインストールされないことがあります。ただし、ユーティリティを起動したときにのみ指標を収集します。

おすすめ記事