All pastes #2121398 Raw Edit

slv-1

public text v1 · immutable
#2121398 ·published 2012-02-24 21:25 UTC
rendered paste body
#!/bin/bash
#if [ "${1}" == "" ]; then
#    exit 1
#fi

###################################################################################################################
# slv-prebw v0.52 02142007 slv (first public rls)
# based on wspre-bw.sh, from *somewhere* ;)
###################################################################################################################
# todo: -round floating points better (awk)
#       -total users in avg
###################################################################################################################

GLROOT="/glftpd"
GLLOG="/ftp-data/logs/glftpd.log"
SITEWHO="/bin/sitewho"
#SLEEPS="1 1 1"
SLEEPS="3 7 10 10 10 10 10"

KBS="kb/s"
MBS="mb/s"
SEC="s: "
AVG="avg: "
SEP="@"
SPACE=" "
BOLD=""

###################################################################################################################
# ONLY EDIT BELOW IF YOU KNOW WHAT YOU'RE DOING
###################################################################################################################

rls=${1}

proc_convert() {
    if [ "${1}" -ge "0" ] && [ "${1}" -lt "1024" ]; then
        echo "${1}${KBS}"
    fi
    if [ "${1}" -ge "1024" ]; then
        echo "`echo "${1} 1024" | awk '{printf "%0.1f", $1 / $2}'`${MBS}"
    fi
}

bwtext=""; time=0; i=0

for slp in ${SLEEPS}; do
    sleep $slp
    bw=0
    u=0
    let "time=time+slp"
#    for leech in `cat pretest.txt | grep ${rls} | grep \"DN\" | cut -d '"' -f 12 | cut -d '.' -f 1`; do
#    for leech in `cat pretest.txt | grep ${rls} | grep \"DN\" | cut -d '"' -f 12`; do
    for leech in `${GLROOT}${SITEWHO} --raw | grep ${rls} | grep \"DN\" | cut -d '"' -f 12`; do
        leech="`echo "${leech}" | awk '{printf "%0.0f", $1}'`"
        let "bw=bw+leech"
        let "u=u+1"
    done
    bwavg[i]="${bw}"
    users[i]="${u}"
    let "i=i+1"
    bwtext="${bwtext}${time}${SEC}`echo ${u}${SEP}`${BOLD}`proc_convert "${bw}"`${BOLD}${SPACE}"
done

element_count=${#bwavg[@]}; index=0
bwavgtotal="0"
while [ "${index}" -lt "${element_count}" ]
do    # List all the elements in the array.
    bwavgtotal=`echo "${bwavgtotal} + ${bwavg[$index]}" | bc`
    let "index = ${index} + 1"
done

#element_count=${#users[@]}; index=0
#userstotal="0"
#while [ "${index}" -lt "${element_count}" ]
#do    # List all the elements in the array.
#     userstotal=`echo "${userstotal} + ${users[$index]}" | bc`
#    let "index = ${index} + 1"
#done

bwavgtotal="`echo "${bwavgtotal} / ${i}" | bc`"
#bwavgtext="${AVG}`echo ${userstotal}${SEP}`${BOLD}`proc_convert ${bwavgtotal}`${BOLD}"
bwavgtext="${AVG}${BOLD}`proc_convert ${bwavgtotal}`${BOLD}"

if [ "$bwavgtotal" != "99999" ]; then
#    echo \"${rls}\" \"${bwtext}${bwavgtext}\" ${GLROOT}${GLLOG}
    echo `date "+%a %b %d %T %Y"` PREBW: \"${rls}\" \"${bwtext}\" >> ${GLROOT}${GLLOG}
fi

exit 0