我想从每个networking适配器获得RX和TX,所以要从一个networking适配器获得RX和TX,我使用了这个命令:
cat /proc/net/dev | grep 'wlan0' |awk '{if ($2) print $2}' | awk -v var="$(date +"%Y-%m-%d %r")" '{print $1"&",var";"}' >> /opt/baran/log/baran_RX_usage_$(date +"%Y-%m-%d"); cat /proc/net/dev | grep 'wlan0' |awk '{if ($10) print $10}' | awk -v var="$(date +"%Y-%m-%d %r")" '{print $1"&",var";"}' >> /opt/baran/log/baran_TX_usage_$(date +"%Y-%m-%d");
正如你所看到的,我把结果放入date(每日)的文件中。 我想在一个while循环中获取每个networking适配器而不是wlan0,所以我们必须有一些日志文件,如:
opt/baran/log/baran_TX_usage_wlan0_2014-01-01 opt/baran/log/baran_RX_usage_wlan0_2014-01-01 opt/baran/log/baran_TX_usage_eth0_2014-01-01 opt/baran/log/baran_RX_usage_eth0_2014-01-01 opt/baran/log/baran_TX_usage_eth1_2014-01-01 opt/baran/log/baran_RX_usage_eth1_2014-01-01 opt/baran/log/baran_TX_usage_eth2_2014-01-01 opt/baran/log/baran_RX_usage_eth2_2014-01-01 opt/baran/log/baran_TX_usage_eth3_2014-01-01 opt/baran/log/baran_RX_usage_eth3_2014-01-01
正如你所看到的,我有一个无线适配器和4个eth,我希望每个日志文件。
谢谢
如何使用更简单的内核API?
for iface in /sys/class/net/*; do # might want to filter out the 'lo' interface read rx_bytes < "$iface"/statistics/rx_bytes read tx_bytes < "$iface"/statistics/tx_bytes day="$(date +"%Y-%m-%d")" time="$(date +"%r")" printf "%s& %s %s;" "$rx_bytes" "$day" "$time" >> /opt/baran/log/baran_RX_usage_"$day" printf "%s& %s %s;" "$tx_bytes" "$day" "$time" >> /opt/baran/log/baran_TX_usage_"$day" done