我试图在BASH中编写我自己的跟踪,如附件中所示。
特别是我需要跟踪接收和发送数据的网络历史。在哪里可以得到这些网络发送/接收值,它是在一个文件中,还是从Linux中的一些命令中得到的?
使用BASH,我试图实现如下类似的功能:
前任:

/* My 10 seconds timer */
t = new javax.swing.Timer(10000, new ActionListener()
{
    public void actionPerformed(ActionEvent ae)
    {
    }
});

后续:(好的站点:http://www.debianhelp.co.uk/networktools1.htm
$ sudo apt-get install bwm-ng;
yum -y install bwm;

# Show me only plain mode
$ bwm-ng -o plain

 bwm-ng v0.6 (delay 0.500s); press 'ctrl-c' to end this
 /proc/net/dev
 |         iface                    Rx                   Tx               Total
 ==============================================================================
              lo:       88803.53 KB/s        88803.53 KB/s        88803.53 KB/s
            eth0:           0.13 KB/s            0.13 KB/s            0.13 KB/s
 ------------------------------------------------------------------------------
           total:       88803.66 KB/s        88803.66 KB/s        88803.66 KB/s

# Show only the interface that i need to see
$ bwm-ng -o plain -I eth0

bwm-ng v0.6 (delay 0.500s); press 'ctrl-c' to end this
 /proc/net/dev
 |         iface                    Rx                   Tx               Total
 ==============================================================================
            eth0:           0.13 KB/s            0.13 KB/s            0.13 KB/s
 ------------------------------------------------------------------------------
           total:           0.13 KB/s            0.13 KB/s            0.13 KB/s

# Show only in MB format or KB format
# by skiping -d will default show as KB
$ bwm-ng -o plain -d

bwm-ng v0.6 (delay 0.500s); press 'ctrl-c' to end this
 /proc/net/dev
 /         iface                    Rx                   Tx               Total
 ==============================================================================
              lo:          85.79 MB/s           85.79 MB/s           85.79 MB/s
            eth0:         246.58  B/s          246.58  B/s          246.58  B/s
 ------------------------------------------------------------------------------
           total:          85.79 MB/s           85.79 MB/s           85.79 MB/s

 $ bwm-ng -o plain -N -d | grep total:
      total:           0.00  B/s            0.00  B/s            0.00  B/s
      total:           1.28 MB/s            1.28 MB/s            1.28 MB/s
      total:           1.19 MB/s            1.19 MB/s            1.19 MB/s
      total:           1.19 MB/s            1.19 MB/s            1.19 MB/s


 # another tool i used apt-get install vnstat
 # bwm-ng was doing wrong strange on other interfaces but this one
 # now showing correct
 $ vnstat -u -i lo
 $ vnstat -u -i eth0
 $ vnstat
 $ iftop -i eth0

最佳答案

编辑:简单的方法:你可以一直使用mrtgcacti而不是自己做。
否则。。。
每2秒输入和输出字节(按ctrl+c使其停止):

default_device=$(awk ' { if ($2 == '00000000') print $1 ; } ' < /proc/net/route)
while true
do
    bytesin=$(grep $default_device /proc/net/dev | cut -d':' -f2 | awk ' { print $1; } ')
    bytesout=$(grep $default_device /proc/net/dev | cut -d':' -f2 | awk ' { print $9; } ')
    echo bytesin=$bytesin bytesout=$bytesout
    sleep 2
done

您将得到如下输出:
bytesin=622734605 bytesout=1249429296
bytesin=622735091 bytesout=1249429620
bytesin=622735523 bytesout=1249430120
bytesin=622736268 bytesout=1249430481
bytesin=622736874 bytesout=1249430535

这些值是为安装了默认路由的设备获取的。

关于linux - 我如何获取实时值以在BASH中制作自己的脚本,如附件所示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8065925/

10-09 04:26