Tmuxステータス行のアップロードとダウンロード速度

Tmuxステータス行のアップロードとダウンロード速度

Tmuxのステータスバーからアップロードとダウンロード速度を取得する方法はありますか?

答え1

次のように必要なインターフェイスを指定して、tmuxのステータス行からシェルスクリプトを呼び出すことができます。

set -g status-left '#[fg=blue]#(speed eth0)#[default]'

このスクリプトレート1を$ PATHに入れます。

#!/bin/bash

iface=$1
RXB=$(</sys/class/net/"$iface"/statistics/rx_bytes)
TXB=$(</sys/class/net/"$iface"/statistics/tx_bytes)
sleep 2 
RXBN=$(</sys/class/net/"$iface"/statistics/rx_bytes)
TXBN=$(</sys/class/net/"$iface"/statistics/tx_bytes)
RXDIF=$(echo $((RXBN - RXB)) )
TXDIF=$(echo $((TXBN - TXB)) )

echo -e "$((RXDIF / 1024 / 2))K/s $((TXDIF / 1024 / 2))K/s"

1.これをどこで見つけたのか覚えていません…

答え2

上記のjasonwryanの答えがすべてのインターフェースを処理したいので、私は次のように修正しました。

#!/bin/bash

RXB=0
TXB=0

for rxbytes in /sys/class/net/*/statistics/rx_bytes ; do
  let RXB+=$(<$rxbytes)
done

for txbytes in /sys/class/net/*/statistics/tx_bytes ; do
  let TXB+=$(<$txbytes)
done

sleep 2 

RXBN=0
TXBN=0

for rxbytes in /sys/class/net/*/statistics/rx_bytes ; do
  let RXBN+=$(<$rxbytes)
done

for txbytes in /sys/class/net/*/statistics/tx_bytes ; do
  let TXBN+=$(<$txbytes)
done    

RXDIF=$(echo $((RXBN - RXB)) )
TXDIF=$(echo $((TXBN - TXB)) )

echo -e "$((RXDIF / 1024 / 2))K/s $((TXDIF / 1024 / 2))K/s"

もちろん、ワイルドカードを変更してすべてのeth *またはwlan *インターフェースを実行するか、findを使用して両方をより複雑に一致させることができます。

答え3

上記に基づいて^とvを使用して上下のインジケータを表示し、正しい表記法(Kiはバイナリキロバイトなど)を使用して必要に応じてMiとGiに変更し、ゼロ以外の小数点を小数点1桁まで表示する必要がありますします。数値。

https://github.com/gryftir/tmux-networkspeed

関連情報