All pastes #535846 Raw Edit

Someone

public text v1 · immutable
·published 2007-06-04 06:02 UTC
rendered paste body
#!/bin/sh

LINK=${1:-klickitat}

DIR=/tmp/linkstats
INPUT=${DIR}/${LINK}

if ! mkdir ${DIR}/lock ; then
    # echo locked
    while [ -d ${DIR}/lock ]; do
        sleep 1
    done
    exit 0;
fi

# echo lock aquired

if [ ! -f ${INPUT} ]; then
    echo 0 > ${INPUT}-loss
    echo 0 > ${INPUT}-ping-success
    echo 0 > ${INPUT}-ping-trials
    echo 0 > ${INPUT}-latency-min
    echo 0 > ${INPUT}-latency-ave
    echo 0 > ${INPUT}-latency-max
    echo 0 > ${INPUT}-rssi-min
    echo 0 > ${INPUT}-rssi-ave
    echo 0 > ${INPUT}-rssi-max
    exit 0;
fi

/bin/mv ${INPUT} ${INPUT}-computing

/bin/awk -v input=${INPUT} 'BEGIN { min_latency = 5.0 ; max_latency = 0.0; min_rssi = 100 ; max_rssi = 0 }
NF == 2 { n_trials++ ; next }
NF == 3 { latency = $2 ; rssi = $3 ; sum_latency += latency ; sum_rssi += rssi ; n_trials++ ; n_success++ }
latency < min_latency { min_latency = latency }
latency > max_latency { max_latency = latency }
rssi < min_rssi { min_rssi = rssi }
rssi > max_rssi { max_rssi = rssi }
#{ print "debug", n_trials, n_success, latency, min_latency, sum_latency, max_latency, rssi, min_rssi, sum_rssi, max_rssi }
END { if (n_trials == 0) {
    print 0 > input "-loss"
    print 0 > input "-ping-success"
    print 0 > input "-ping-trials"
    print 0 > input "-latency-min"
    print 0 > input "-latency-ave"
    print 0 > input "-latency-max"
    print 0 > input "-rssi-min"
    print 0 > input "-rssi-ave"
    print 0 > input "-rssi-max"
} else {
    printf("%.3f\n", (n_trials - n_success)/n_trials) > input "-loss"
    print n_success > input "-ping-success"
    print n_trials  > input "-ping-trials"
    if (n_success == 0) {
        print 0 > input "-latency-min"
        print 0 > input "-latency-ave"
        print 0 > input "-latency-max"
        print 0 > input "-rssi-min"
        print 0 > input "-rssi-ave"
        print 0 > input "-rssi-max"
    } else {
        printf("%.3f\n", min_latency)           > input "-latency-min"
        printf("%.3f\n", sum_latency/n_success) > input "-latency-ave"
        printf("%.3f\n", max_latency)           > input "-latency-max"
        print min_rssi                        > input "-rssi-min"
        printf("%.1f\n", sum_rssi/n_success)    > input "-rssi-ave"
        print max_rssi                        > input "-rssi-max"
    }
} }' ${INPUT}-computing

rm -f ${INPUT}-computing

rmdir ${DIR}/lock

exit 0