Následující tři skripty prostředí Linux / Unix vám mohou pomoci.
- Zobrazení procesů na základě %CPU nebo Využití paměti.
- Zobrazte, který uživatel nejvíce využívá CPU.
- Zobrazení informací o paměti systému – celkové, použité a volné.
1. Seznam procesů na základě %CPU a využití paměti
Tento skript uvádí procesy založené na %CPU a využití paměti, s out argumentem (ve výchozím nastavení). Pokud zadáte argument (cpu nebo mem), vypíše procesy založené na využití CPU nebo paměti.
$ cat 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
Výše uvedený skript můžete spustit, jak je uvedeno níže.
$ processes.sh $ processes.sh mem $ processes.sh cpu
2. Zobrazit Přihlášené uživatele a kteří využívají vysoké procento CPU
Tento skript zobrazuje několik informací o aktuálně přihlášených uživatelích a o tom, co dělají.
$ cat 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
$ ./loggedin.sh Total number of unique users logged in currently 4 List of unique users logged in currently john david raj reshma The user who is using high %cpu 0.99s reshma pts/5 192.168.2.1 15:26 3:01 1.02s 0.99s custom-download.sh List of users logged in and what they are doing 15:53:55 up 230 days, 2:38, 7 users, load average: 0.19, 0.26, 0.24 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT john pts/1 192.168.2.9 14:25 1:28m 0.03s 0.03s -bash john pts/2 192.168.2.9 14:41 1:11m 0.03s 0.03s -bash raj pts/0 192.168.2.6 15:07 9:08 0.11s 0.02s -bash raj pts/3 192.168.2.6 15:19 29:29 0.02s 0.02s -bash john pts/4 192.168.2.91 15:25 13:47 0.22s 0.20s vim error_log reshma pts/5 192.168.2.1 15:26 3:01 1.02s 0.99s custom-download.sh
3. Zobrazení celkové, použité a volné paměti
Následující skript zobrazuje celkovou, použitou a volnou paměť.
$ cat 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"; }'
$ ./mem.sh Memory Space Details Total Memory space : 4364 MB Used Memory Space : 451 MB Free Memory : 3912 MB Swap memory Details Total Swap space : 2421 MB Used Swap Space : 0 MB Free Swap : 2421 MB
15 užitečných vestavěných příkazů Bash Shell (s příklady)
Tři pravidla správce systému, která nemůžete (a neměla byste) porušit