一部のアプリケーションが「むさぼり食う」トラフィックの量を測定する必要があった。 これを測定する1つの方法は、プロキシをインストールすることです。 しかし、プロキシサーバーをインストールしたくない場合はどうなりますか?..したくありませんでした。 他の方法を探して、まずHabrを、次にインターネットを、うわさしました。 私はかつてこれに多くの時間を費やしていたので、今は他の人がそのような問題を抱えないようにこのメモを作成しています。
重要:
このメソッドは、アプリケーションがアクセスしているアドレスまたはポートからわかっている場合に機能します。
順を追った説明
1. iptraf
iptrafは、コンピューターのすべてのネットワークアクティビティを監視できる小さなプログラムです。
ソースとバイナリは
、iptrafからダウンロードできます
。Ubuntuの場合、次のコマンドを実行してiptrafをインストールできます。
sudo apt-get install iptraf2.起動!
ターミナルで次のように記述します:iptraf

3.カスタマイズ
ロギングを有効にする必要があります(そうしないと、プログラムは画面に表示するように制限されます)。 これは明らかに
「構成」セクションで行われます。

4.監視を開始する
設定を終了し、[IPトラフィックモニター]をクリックして、ネットワークアクティビティを記録するファイルへのパスを選択します。

その後、次の図が表示されます。

必要なのはそれだけです! ほぼ。
5.分析
前述したように、アプリケーションがアクセスしているアドレス/ポート(計算するトラフィック)を知る必要があります。
たとえば、
last.fmラジオの1時間にどのくらいのトラフィックが「コスト」になるかを計算する場合、以下を決定する必要があります。
last.fmアプリケーションは、次のようなアドレスにアクセスします。
195.24。*(Last.fmは単一のアドレスにはアクセスしませんが、アドレスの範囲を参照します)。
消費されたトラフィック量をログから取得するために(1時間書き込まれます)、このトラフィックを考慮する小さな「プログラム」をJavaで作成しました。
package stat; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class Main { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new FileReader("/var/log/iptraf/ip_traffic")); String line; long count = 0; long traffic = 0; while ((line = reader.readLine()) != null) { count++; String s[] = line.split(" "); if (s.length < 12) { continue; } if (s[10].contains("195.24.") || s[12].contains("195.24.")) {
このオプションは、ログを絶えず書き込み、そこで何かを測定する必要がある場合に有効です。 特定の状況で必要なパーサーを正確に記述/構成するだけで、必要なデータをすべて取得できます。
おそらく、これは最良のオプションではありません(動作しますが)。 他の多くのオプションがあります:
http://help.ubuntu.ru / ...http://iptraf.seul.org/2.7/filters.htmlなどなど。