1. List Processes based on %CPU and Memory Usage
This script list the processes based on %CPU and Memory usage, with out argument (by default), If you specify the argument (cpu or mem), it lists the processes based on CPU usage or memory usage.$ vi processes.sh #! /bin/bash #List processes based on %cpu and memory usage echo "Start Time" `date` # By default, it display the list of processes based on the cpu and memory usage # if [ $# -eq 0 ] then echo "List of processes based on the %cpu Usage" ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu # sorted based on %cpu echo "List of processes based on the memory Usage" ps -e -orss=,args= | sort -b -k1,1n # sorted bases rss value # If arguements are given (mem/cpu) else case "$1" in mem) echo "List of processes based on the memory Usage" ps -e -orss=,args= | sort -b -k1,1n ;; cpu) echo "List of processes based on the %cpu Usage" ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu ;; *) echo "Invalid Argument Given \n" echo "Usage : $0 mem/cpu" exit 1 esac fi echo "End Time" `date` exit 0
#chmod +x processes.sh
You can execute the above script as shown below.
$ processes.sh $ processes.sh mem $ processes.sh cpu
2. Display Logged in users and who is using high CPU percentage
This script displays few information about the currently logged in users and what they are doing.$ vi loggedin.sh #! /bin/bash w > /tmp/a echo "Total number of unique users logged in currently" cat /tmp/a| sed '1,2d' | awk '{print $1}' | uniq | wc -l echo "" echo "List of unique users logged in currently" cat /tmp/a | sed '1,2d'| awk '{print $1}' | uniq echo "" echo "The user who is using high %cpu" cat /tmp/a | sed '1,2d' | awk '$7 > maxuid { maxuid=$7; maxline=$0 }; END { print maxuid, maxline }' echo "" echo "List of users logged in and what they are doing" cat /tmp/a
# chmod +x loggedin.sh
./loggedin.sh Total number of unique users logged in currently 1 List of unique users logged in currently root The user who is using high %cpu 0.12s root pts/0 99.33.7.252 Sat00 16:30m 0.12s 0.12s -bash List of users logged in and what they are doing 04:36:49 up 2 days, 20:12, 2 users, load average: 0.11, 0.05, 0.01 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 99.33.7.252 Sat00 16:30m 0.12s 0.12s -bash root pts/1 122.181.129.226 04:17 0.00s 0.02s 0.00s /bin/bash ./log
3. Display Total, Used and Free Memory
The following script displays the total, used and free memory space.$ vi mem.sh #! /bin/bash # Total memory space details echo "Memory Space Details" free -t -m | grep "Total" | awk '{ print "Total Memory space : "$2 " MB"; print "Used Memory Space : "$3" MB"; print "Free Memory : "$4" MB"; }' echo "Swap memory Details" free -t -m | grep "Swap" | awk '{ print "Total Swap space : "$2 " MB"; print "Used Swap Space : "$3" MB"; print "Free Swap : "$4" MB"; }'
#chmod +x mem.sh
[root@ip-10-202-215-149 ~]# ./mem.sh
Memory Space Details
Total Memory space : 2602 MB
Used Memory Space : 804 MB
Free Memory : 1797 MB
Swap memory Details
Total Swap space : 895 MB
Used Swap Space : 0 MB
Free Swap : 895 MB
[root@ip-10-202-215-149 ~]#
No comments:
Post a Comment