GNU/Linux >> Belajar Linux >  >> Linux

3 Skrip Unix Shell – Aktivitas Pengguna, Lihat Proses, Tampilkan Memori

Anda mungkin menemukan tiga skrip shell Linux / Unix berikut ini membantu.

  • Menampilkan proses berdasarkan %CPU atau Penggunaan Memori.
  • Menampilkan pengguna mana yang paling banyak menggunakan CPU.
  • Menampilkan informasi memori sistem – total, bekas, dan gratis.

1. Mencantumkan Proses berdasarkan %CPU dan Penggunaan Memori

Skrip ini mencantumkan proses berdasarkan %CPU dan penggunaan Memori, tanpa argumen (secara default), Jika Anda menentukan argumen (cpu atau mem), skrip ini mencantumkan proses berdasarkan penggunaan CPU atau penggunaan memori.

$ 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

Anda dapat menjalankan skrip di atas seperti yang ditunjukkan di bawah ini.

$ processes.sh

$ processes.sh mem

$ processes.sh cpu

2. Tampilkan Pengguna yang masuk dan yang menggunakan persentase CPU tinggi

Skrip ini menampilkan sedikit informasi tentang pengguna yang saat ini masuk dan apa yang mereka lakukan.

$ 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. Tampilan Total, Memori Bekas dan Bebas

Skrip berikut menampilkan total, ruang memori yang digunakan, dan kosong.

$ 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

Linux
  1. UNIX / Linux :Apa itu Shell? Apa Shells yang berbeda?

  2. Apa perintah *nix untuk melihat shell login default pengguna

  3. Bisakah saya mencatat aktivitas vi?

  1. Menyortir proses berdasarkan penggunaan memori

  2. Jalankan skrip shell sebagai pengguna yang berbeda

  3. Menjalankan perintah sebagai pengguna nologin

  1. Izinkan Setuid Pada Skrip Shell?

  2. Array Di Unix Bourne Shell?

  3. Bagaimana Cara Menjatuhkan Hak Istimewa Root Dalam Skrip Shell?