
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桁まで表示する必要がありますします。数値。