#!/bin/sh -e # # network: calculate the network up/down rates # # Copyright (C) 2008 Canonical Ltd. # Copyright (C) 2011-2014 Dustin Kirkland # # Authors: Dustin Kirkland <kirkland@byobu.org> # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, version 3 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. __network_detail() { get_network_interface; local interface="$_RET" LC_ALL=C /sbin/ifconfig "$interface" | $BYOBU_SED 's/\s*$//' } __network() { get_network_interface; local interface="$_RET" local x1=0 x2=0 tx1=0 i= t= unit= symbol= cache= rate= status_freq network t="$_RET" # By default, we won't bug the user with the display of network traffic # below NETWORK_THRESHOLD in kbps; override in $BYOBU_CONFIG_DIR/status [ -n "$NETWORK_THRESHOLD" ] || NETWORK_THRESHOLD=20 for i in up down; do unit="kb" case $i in up) symbol="$ICON_UP" ;; down) symbol="$ICON_DN" ;; esac cache="$BYOBU_RUN_DIR/cache.$BYOBU_BACKEND/network.$i" [ -r "$cache" ] && read x1 < "$cache" || tx1=0 local iface rbytes rpackets rerrs rdrop rfifo rframe rcompressed rmulticast tbytes tpackets terrs tdrop tfifo tcolls tcarrier tcompressed cat /proc/net/dev > "$cache".dev while read iface rbytes rpackets rerrs rdrop rfifo rframe rcompressed rmulticast tbytes tpackets terrs tdrop tfifo tcolls tcarrier tcompressed; do case "$iface" in ${interface}:) [ "$i" = "up" ] && x2=${tbytes} || x2=${rbytes} break; ;; ${interface}:*) # Interface and tbytes got munged together [ "$i" = "up" ] && x2=${rmulticast##*:} || x2=${iface##*:} break; ;; esac done < "$cache".dev printf "%s" "$x2" > "$cache" rate=$((8*($x2 - $x1) / $t / 1024)) # in kbps [ "$rate" -lt 0 ] && rate=0 if [ $rate -gt $NETWORK_THRESHOLD ]; then case "$NETWORK_UNITS" in bytes) rate=$(($rate/8)) if [ "$rate" -gt 1048576 ]; then fpdiv "$rate" 1048576 1 rate=${_RET} unit="GB/s" elif [ "$rate" -gt 1024 ]; then fpdiv "$rate" 1024 1 rate=${_RET} unit="MB/s" else unit="kB/s" fi ;; *) # Default to bps # Why 1000 and not 1024? http://en.wikipedia.org/wiki/Data_rate_units if [ "$rate" -gt 1000000 ]; then fpdiv "$rate" 1000000 1 rate=${_RET} unit="Gb" elif [ "$rate" -gt 1000 ]; then fpdiv "$rate" 1000 1 rate=${_RET} unit="Mb" fi ;; esac [ -n "$rate" ] || continue color b m w; printf "%s%s" "$symbol" "$rate"; color -; color m w; printf "%s" "$unit"; color -- else rm -f "$BYOBU_RUN_DIR/status.$BYOBU_BACKEND/network"* fi done } # vi: syntax=sh ts=4 noexpandtab
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
include | Folder | 0755 |
|
|
apport | File | 1.51 KB | 0755 |
|
arch | File | 916 B | 0755 |
|
battery | File | 4.1 KB | 0755 |
|
color | File | 1.04 KB | 0755 |
|
cpu_count | File | 1.03 KB | 0755 |
|
cpu_freq | File | 1.84 KB | 0755 |
|
cpu_temp | File | 1.79 KB | 0755 |
|
custom | File | 1.88 KB | 0755 |
|
date | File | 990 B | 0755 |
|
disk | File | 1.8 KB | 0755 |
|
disk_io | File | 2.92 KB | 0755 |
|
distro | File | 1.04 KB | 0755 |
|
ec2_cost | File | 4.21 KB | 0755 |
|
entropy | File | 1.06 KB | 0755 |
|
fan_speed | File | 1.85 KB | 0755 |
|
hostname | File | 1.3 KB | 0755 |
|
ip_address | File | 3.02 KB | 0755 |
|
load_average | File | 1.1 KB | 0755 |
|
logo | File | 3.92 KB | 0755 |
|
File | 1.31 KB | 0755 |
|
|
memory | File | 2.61 KB | 0755 |
|
menu | File | 1.61 KB | 0755 |
|
network | File | 3.1 KB | 0755 |
|
processes | File | 1.13 KB | 0755 |
|
raid | File | 1.4 KB | 0755 |
|
rcs_cost | File | 3.55 KB | 0755 |
|
reboot_required | File | 2.15 KB | 0755 |
|
release | File | 1.83 KB | 0755 |
|
services | File | 2.08 KB | 0755 |
|
session | File | 1.28 KB | 0755 |
|
swap | File | 1.75 KB | 0755 |
|
time | File | 1.06 KB | 0755 |
|
time_binary | File | 4.18 KB | 0755 |
|
time_utc | File | 960 B | 0755 |
|
trash | File | 1.13 KB | 0755 |
|
updates_available | File | 5.03 KB | 0755 |
|
uptime | File | 1.64 KB | 0755 |
|
users | File | 1.51 KB | 0755 |
|
whoami | File | 959 B | 0755 |
|
wifi_quality | File | 1.85 KB | 0755 |
|