public-dotfiles/waybar/scripts/net_speed_daemon.sh
2025-06-22 21:18:32 +03:00

36 lines
859 B
Bash
Executable File

#!/bin/bash
INTERFACE=$(ip route get 8.8.8.8 2>/dev/null | awk '{print $5; exit}')
[ -z "$INTERFACE" ] && INTERFACE="eth0"
RX_PATH="/sys/class/net/$INTERFACE/statistics/rx_bytes"
TX_PATH="/sys/class/net/$INTERFACE/statistics/tx_bytes"
OUTFILE="/tmp/waybar_net_speed_output"
prev_rx=$(cat "$RX_PATH")
prev_tx=$(cat "$TX_PATH")
prev_time=$(date +%s)
while true; do
sleep 1
cur_rx=$(cat "$RX_PATH")
cur_tx=$(cat "$TX_PATH")
cur_time=$(date +%s)
drx=$((cur_rx - prev_rx))
dtx=$((cur_tx - prev_tx))
dt=$((cur_time - prev_time))
if (( dt > 0 )); then
rx_mbps=$(awk "BEGIN { printf \"%.1f\", $drx * 8 / 1024 / 1024 / $dt }")
tx_mbps=$(awk "BEGIN { printf \"%.1f\", $dtx * 8 / 1024 / 1024 / $dt }")
echo "${rx_mbps}Mbit/s  ${tx_mbps}Mbit/s" > "$OUTFILE"
fi
prev_rx=$cur_rx
prev_tx=$cur_tx
prev_time=$cur_time
done