Linux やプログラミングについて書きます。

tcpstat の RPM 作成手順

tcpstat は、
UCP/TCP トラフィックの統計情報を出力するコマンドです。

tcpstat -i eth0 -f "dst port 3306" -o "%S %B\n"

のように実行すると、eth0 からの port 3306 への outboud traffic(bytes) を出力することができます。
-f のフィルタは、ヘルプに書いてあるとおり tcpdump の形式で指定することができます。

$ tcpstat -h
tcpstat version 1.5
usage: tcpstat [-?haeFlp] [-b bps] [-B bps] [-f filter expr] [-i interface]
            [-o output] [-R seconds] [-r filename] [-s seconds] [interval]
        -?, -h          - display this help
        -a              - accounting mode
        -b bps          - bandwidth mode, where bps is bits/second
        -B bps          - dumb bandwidth mode, where bps is bits/second
        -e              - do not print empty intervals
        -F              - flush stdout after printing each line
        -f filter expr  - packet filter expression (like in tcpdump)
        -i interface    - do live capture on [interface], not from file
        -l              - include linklayer in packet size calc
        -o output       - format for the output of stats (see manpage)
        -p              - non-promiscuous mode when doing live capture
        -R seconds      - display time relative to [seconds]
        -r filename     - read data from [filename]
        -s seconds      - capture only [seconds] long (-1 is infinite)

        interval        - time interval (seconds) for taking samples

ただ、なかなか便利なのですが RPM がないので作りました。

tcpstat の RPM 作成手順

以下のコマンドを実行して、tcpstat の source を落としてきます。

curl -s -o ~/rpmbuild/SOURCES/tcpstat-1.5.tar.gz

以下のファイルを、~/rpmbuild/SPECS/tcpstat.spec として作成します。

libpcap-devel が必要なので、インストールします。

yum install -y libpcap-devel


rpmbuild -ba ~/rpmbuild/SPECS/tcpstat.spec