Add files via upload
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
#!/bin/bash
|
||||
# Source: http://www.onlamp.com/pub/a/linux/2000/11/16/LinuxAdmin.html
|
||||
|
||||
INSTANCE="${BLOCK_INSTANCE}"
|
||||
# If you don't like you can use any other IP
|
||||
INTERFACE="$(ip route get 8.8.8.8 | grep -Po '(?<=(dev )).*(?= src)')"
|
||||
|
||||
if [[ "${INSTANCE}" = "" ]]; then
|
||||
INSTANCE="${INTERFACE};both"
|
||||
fi
|
||||
|
||||
DISPLAY=$(echo "${INSTANCE}" | awk -F ';' '{print $2}')
|
||||
INSTANCE=$(echo "${INSTANCE}" | awk -F ';' '{print $1}')
|
||||
|
||||
if [[ "${DISPLAY}" = "" ]]; then
|
||||
DISPLAY="both"
|
||||
fi
|
||||
|
||||
ONE_KB=1024
|
||||
ONE_MB=$(echo "${ONE_KB}*1024" | bc -l)
|
||||
TEN_MB=$(echo "${ONE_MB}*10" | bc -l)
|
||||
OHD_MB=$(echo "${TEN_MB}*10" | bc -l)
|
||||
|
||||
URGENT_VALUE="${ONE_MB}"
|
||||
|
||||
PREV_IN=0
|
||||
PREV_OUT=0
|
||||
|
||||
PREV_FILE="/tmp/.bandwidth"
|
||||
|
||||
if [[ -f "${PREV_FILE}" ]]; then
|
||||
PREV_CONT=$(cat "${PREV_FILE}")
|
||||
PREV_IN=$(echo "${PREV_CONT}" | head -n 1)
|
||||
PREV_OUT=$(echo "${PREV_CONT}" | tail -n 1)
|
||||
fi
|
||||
|
||||
BANDWIDTH=$(grep "${INSTANCE}" /proc/net/dev | awk -F: '{print $2}' | awk '{print $1" "$9}')
|
||||
|
||||
if [[ "${BANDWIDTH}" = "" ]]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
BYTES_IN=$(echo "${BANDWIDTH}" | awk -F ' ' '{print $1}')
|
||||
BYTES_OUT=$(echo "${BANDWIDTH}" | awk -F ' ' '{print $2}')
|
||||
|
||||
function FormatNumber() {
|
||||
if [[ "${1}" -ge "${OHD_MB}" ]]; then
|
||||
printf "%03d" $(echo "scale=0;${1}/${ONE_MB}" | bc -l)
|
||||
echo "m"
|
||||
elif [[ "${1}" -ge "${TEN_MB}" ]]; then
|
||||
printf "%03d" $(echo "scale=1;${1}/${ONE_MB}" | bc -l)
|
||||
echo "m"
|
||||
elif [[ "${1}" -ge "${ONE_MB}" ]]; then
|
||||
printf "%03d" $(echo "scale=2;${1}/${ONE_MB}" | bc -l)
|
||||
echo "m"
|
||||
elif [[ "${1}" -ge "${ONE_KB}" ]]; then
|
||||
printf "%03d" $(echo "scale=0;${1}/${ONE_KB}" | bc -l)
|
||||
echo "k"
|
||||
else
|
||||
printf "%03d" "$1"
|
||||
echo "b"
|
||||
fi
|
||||
}
|
||||
|
||||
if [[ "${PREV_IN}" != "" ]] && [[ "${PREV_OUT}" != "" ]]; then
|
||||
# Calculate the CPU usage since we last checked.
|
||||
DIFF_IN=$(echo "scale=0;${BYTES_IN} - ${PREV_IN}" | bc -l)
|
||||
DIFF_OUT=$(echo "scale=0;${BYTES_OUT} - ${PREV_OUT}" | bc -l)
|
||||
DIFF_TOTAL=0
|
||||
|
||||
USAGE_IN=$(FormatNumber "${DIFF_IN}")
|
||||
USAGE_OUT=$(FormatNumber "${DIFF_OUT}")
|
||||
|
||||
if [[ "${DISPLAY}" = "both" ]]; then
|
||||
echo "${USAGE_IN} : ${USAGE_OUT}"
|
||||
echo "${USAGE_IN} : ${USAGE_OUT}"
|
||||
echo ""
|
||||
DIFF_TOTAL=$((DIFF_TOTAL+DIFF_IN))
|
||||
DIFF_TOTAL=$((DIFF_TOTAL+DIFF_OUT))
|
||||
elif [[ "${DISPLAY}" = "in" ]]; then
|
||||
echo "${USAGE_IN}"
|
||||
echo "${USAGE_IN}"
|
||||
echo ""
|
||||
DIFF_TOTAL=$((DIFF_TOTAL+DIFF_IN))
|
||||
elif [[ "${DISPLAY}" = "out" ]]; then
|
||||
echo "${USAGE_OUT}"
|
||||
echo "${USAGE_OUT}"
|
||||
echo ""
|
||||
DIFF_TOTAL=$((DIFF_TOTAL+DIFF_OUT))
|
||||
fi
|
||||
else
|
||||
echo "?"
|
||||
echo "?"
|
||||
echo ""
|
||||
fi
|
||||
|
||||
# Remember the total and idle CPU times for the next check.
|
||||
echo "${BYTES_IN}" > "${PREV_FILE}"
|
||||
echo "${BYTES_OUT}" >> "${PREV_FILE}"
|
||||
|
||||
if [[ "${DIFF_TOTAL}" -ge "${URGENT_VALUE}" ]]; then
|
||||
exit 0
|
||||
fi
|
||||
Reference in New Issue
Block a user