#!/bin/bash
# Afrihost - pslog report

usage() {
    echo "Usage: $0 [-l] [-r IF_LOAD_ABOVE_VALUE]" >&2
    echo "Example: $0 -l    [shows list of load averages is /var/log/pslog with uniq id  ]" >&2
    echo "Example: $0 -r 2  [shows pslog output at points where load above specified value (you can | less and search for "start ===")]" >&2
    exit 1
}

while getopts ":lr:" opt; do
    case $opt in
        l)
            # Option to show list of load averages
            grep "^pslog.*load average" /var/log/pslog
            exit 0
            ;;
        r)
            # Option to show output when server load is above MYLOADVALUE
            MYLOADVALUE="$OPTARG"
            grep "^pslog.*load average" /var/log/pslog | awk -v threshold="$MYLOADVALUE" '$6 > threshold' | awk '{print $NF}' | while read puid; do
                echo "awk '/start === $puid/,/Finish === $puid/' /var/log/pslog" | bash 
                echo -e "=============\n"
            done
            exit 0
            ;;
        \?)
            echo "Invalid option: -$OPTARG" >&2
            usage
            ;;
       h)
            echo "Option -$OPTARG requires load average value to print report if load above" >&2
            usage
            ;;
    esac
done

# If no options are provided or if an invalid option is used, show usage
usage
