Virtualizor - скрипт проверки потребления трафика в реальном времени - bash - 2026

Материал из Wiki - Iphoster - the best ever hosting and support. 2005 - 2026
Перейти к:навигация, поиск

Virtualizor - скрипт проверки потребления трафика в реальном времени - bash - 2026

viifv* - заменить на свои интерфейсы.


#!/bin/bash

INTERVAL=2

declare -A RX TX

for i in /sys/class/net/viifv*; do
    iface=$(basename "$i")
    RX[$iface]=$(cat "$i/statistics/rx_bytes")
    TX[$iface]=$(cat "$i/statistics/tx_bytes")
done

while true; do
    sleep "$INTERVAL"
    clear

    echo "Updated: $(date)"
    printf "%-12s %10s %10s %10s\n" "Interface" "RX(Mbps)" "TX(Mbps)" "Total"

    {
        for i in /sys/class/net/viifv*; do
            iface=$(basename "$i")

            rx=$(cat "$i/statistics/rx_bytes")
            tx=$(cat "$i/statistics/tx_bytes")

            drx=$((rx-${RX[$iface]}))
            dtx=$((tx-${TX[$iface]}))

            RX[$iface]=$rx
            TX[$iface]=$tx

            rxmb=$((drx*8/INTERVAL/1000000))
            txmb=$((dtx*8/INTERVAL/1000000))
            total=$((rxmb+txmb))

            printf "%8d %-12s %10d %10d %10d\n" \
                "$total" "$iface" "$rxmb" "$txmb" "$total"
        done
    } | sort -nr
done
×
Реклама
ИКС