aboutsummaryrefslogtreecommitdiff
path: root/segments/ifstat.sh
diff options
context:
space:
mode:
authorCody Hiar <chiar@hybridforge.com>2015-08-12 12:06:23 -0600
committerCody Hiar <chiar@hybridforge.com>2015-08-12 12:06:23 -0600
commit07fc2644a237187dd4c5680e88f4adadbf533603 (patch)
treebb6335e180df48c5a6f0b893312857d36ad470f7 /segments/ifstat.sh
Initial commit of the working files
Diffstat (limited to 'segments/ifstat.sh')
-rwxr-xr-xsegments/ifstat.sh39
1 files changed, 39 insertions, 0 deletions
diff --git a/segments/ifstat.sh b/segments/ifstat.sh
new file mode 100755
index 0000000..2666496
--- /dev/null
+++ b/segments/ifstat.sh
@@ -0,0 +1,39 @@
+# Show network statistics for all active interfaces found.
+
+run_segment() {
+ type ifstat >/dev/null 2>&1
+ if [ "$?" -ne 0 ]; then
+ return 1
+ fi
+
+ sed="sed"
+ type gsed >/dev/null 2>&1
+ if [ "$?" -eq 0 ]; then
+ sed="gsed"
+ fi
+
+ data=$(ifstat -z -S -q 1 1)
+ interfaces=$(echo -e "${data}" | head -n 1)
+ flow_data=$(echo -e "${data}" | tail -n 1 | ${sed} "s/\s\{1,\}/,/g")
+ index=1
+ for inf in ${interfaces}; do
+ type=""
+ case ${inf} in
+ eth*) type="⎆"
+ ;;
+ wlan*) type="☫"
+ ;;
+ en*) type=" "
+ ;;
+ esac
+ if [ -n "${type}" ]; then
+ formate=$(echo "${formate} ${type} ⇊ %.2f ⇈ %.2f")
+ holder=$(echo "${holder},\$$((index)),\$$((index+1))")
+ fi
+ index=$((index+2))
+ done
+ if [ -n "${formate}" ]; then
+ echo $(echo "${flow_data#,}" | awk -F"," "{printf(\"${formate}\"${holder})}")
+ fi
+ return 0
+}