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로 변경하고, 0이 아닌 소수점을 소수점 한 자리까지 표시해야 합니다. 수치.