#!/bin/sh -e # # disk_io: calculate the disk io rate # # Copyright (C) 2010 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/>. __disk_io_detail() { if eval $BYOBU_TEST iostat >/dev/null; then iostat -d -m -h else printf "%s\n" "Please install iostat if you want detailed information on your disk throughput" fi } getdisk() { local t="" if [ -L "${1}" ]; then t=$($BYOBU_READLINK -f "$1") else t="$1" fi t="${t##*/}"; [ -h "/sys/block/$t" ] && _RET="$t" || rtrim "$t" "0-9" } __disk_io() { local part= i= # Default to disk providing /, but let users override with MONITORED_DISK [ -z "$MONITORED_DISK" ] && mount_point="/" || mount_point="$MONITORED_DISK" # By default, we won't bug the user with the display of network traffic # below DISK_IO_THRESHOLD in kB/s; override in $BYOBU_CONFIG_DIR/status [ -n "$DISK_IO_THRESHOLD" ] || DISK_IO_THRESHOLD=50 case "$mount_point" in /dev/*) part="${mount_point}";; *) part=$(awk '$2 == mp { print $1 ; exit(0); }' "mp=$mount_point" /etc/mtab);; esac getdisk "$part" local disk=${_RET} local t2=$(date +%s) t1= for i in "read" "write"; do local cache="$BYOBU_RUN_DIR/cache.$BYOBU_BACKEND/disk.$i" t1=$(stat -c %Y "$cache") 2>/dev/null || t1=0 local unit="kB/s" local rate=0 x1=0 x2=0 symbol= unit= if [ $t2 -le $t1 ]; then rate=0 else [ -r "$cache" ] && read x1 < "$cache" local a1= a2= a3= a4= a5= a6= a7= a8= a9= a10= read a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 other < "/sys/block/$disk/stat" if [ "$i" = "read" ]; then symbol="$ICON_RD" x2="$a3" else symbol="$ICON_WR" x2="$a7" fi printf "%s" "$x2" > "$cache" rate=$((($x2 - $x1) / ($t2 - $t1) * 512 / 1024)) if [ $rate -lt $DISK_IO_THRESHOLD ]; then # Below threshold, don't print continue elif [ "$rate" -lt 0 ]; then rate=0 elif [ "$rate" -gt 1048576 ]; then unit="GB/s" fpdiv "$rate" 1048576 0 rate=${_RET} elif [ "$rate" -gt 1024 ]; then unit="MB/s" fpdiv "$rate" 1024 0 rate=${_RET} else unit="kB/s" fi fi if [ -z "$rate" ] || [ "$rate" = "0" ]; then rm -f "$BYOBU_RUN_DIR/status.$BYOBU_BACKEND/disk_io"* else color b M W; printf "%s%s" "$symbol" "$rate"; color -; color M W; printf "%s" "$unit"; color -- 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 |
|