Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- #top -b -n 1 | sed '1,7d'| sort | awk '{print $12 " | " $9}'
- # $1,$2,$3,..,$n -- names of processes to monitor
- OUTPUT=""
- FIRST_LAUNCH=1
- # one process - $n
- #process_name=$1
- #shift
- # generating output file
- make_output() {
- cat /tmp/.stress/.header > ./stress.out
- for proc in $(ls /tmp/.stress/); do
- cat /tmp/.stress/$proc >> ./stress.out
- done
- sed -i "s/#/|/g" ./stress.out
- echo "Output file written into ./stress.out"
- }
- # cleaning after script
- clean_up() {
- make_output
- rm -rf /tmp/.stress
- return
- }
- # self explainable
- error_exit() {
- echo -e "${PROGNAME}: ${1:-"Unknown Error"}" >&2
- clean_up
- exit 1
- }
- # self explainable
- signal_exit() {
- case $1 in
- INT) error_exit "Program interrupted by user" ;;
- TERM) echo -e "\n$PROGNAME: Program terminated" >&2 ; graceful_exit ;;
- *) error_exit "$PROGNAME: Terminating on unknown signal" ;;
- esac
- }
- # Trap signals
- trap "signal_exit TERM" TERM HUP
- trap "signal_exit INT" INT
- # creating /tmp/.stress directory
- if [[ $FIRST_LAUNCH -eq 1 ]]; then
- if [[ ! -d /tmp/.stress ]]; then
- mkdir /tmp/.stress
- fi
- while [ $# -gt 0 ]; do
- echo "$1 #" > /tmp/.stress/$1.$$
- shift
- done
- echo "process_name #" > /tmp/.stress/.header
- FIRST_LAUNCH=0
- fi
- # rebuilding processes names
- processes=""
- for proc in $(ls /tmp/.stress/); do
- # process=$(echo $proc | cut -d '.' -f 1)
- processes="$processes $proc"
- done
- #echo $processes
- while [ 1 ]; do
- clear
- TIME_NOW=$(date "+%H:%M:%S")
- sed -i "s/#/| $TIME_NOW #/" /tmp/.stress/.header
- for proc in $processes; do
- process_name=$(echo $proc | cut -d '.' -f 1)
- process_cpu_usage=$(top -b -n 1 | sed '1,7d'| sort | grep $process_name | awk '{print $9}' | sort -r | head -n 1)
- #echo "$process_name | $process_cpu_usage"
- sed -i "s/#/| $process_cpu_usage #/" /tmp/.stress/$proc
- cat /tmp/.stress/$proc
- done
- sleep 1
- done
- #ls -l /tmp/.stress/
- clean_up
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement