GNU/Linux >> Tutoriels Linux >  >> Linux

3 scripts shell Unix - Activité de l'utilisateur, afficher les processus, afficher la mémoire

Les trois scripts shell Linux/Unix suivants pourraient vous être utiles.

  • Afficher les processus en fonction du pourcentage d'UC ou de l'utilisation de la mémoire
  • Afficher quel utilisateur utilise le plus le processeur.
  • Afficher les informations sur la mémoire du système :totale, utilisée et libre.

1. Répertorier les processus en fonction du pourcentage d'utilisation du processeur et de la mémoire

Ce script répertorie les processus en fonction de l'utilisation %CPU et de la mémoire, sans argument (par défaut). Si vous spécifiez l'argument (cpu ou mem), il répertorie les processus en fonction de l'utilisation du processeur ou de la mémoire.

$ 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

Vous pouvez exécuter le script ci-dessus comme indiqué ci-dessous.

$ processes.sh

$ processes.sh mem

$ processes.sh cpu

2. Afficher les utilisateurs connectés et ceux qui utilisent un pourcentage élevé de CPU

Ce script affiche quelques informations sur les utilisateurs actuellement connectés et sur ce qu'ils font.

$ 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. Afficher la mémoire totale, utilisée et libre

Le script suivant affiche l'espace mémoire total, utilisé et libre.

$ 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. Autoriser Setuid sur les scripts Shell ?

  2. TMOUT - Quitter automatiquement Unix Shell lorsqu'il n'y a pas d'activité

  3. UNIX / Linux :Qu'est-ce qu'un Shell ? Quels sont les différents coquillages ?

  4. Quelle est la commande *nix pour afficher le shell de connexion par défaut d'un utilisateur

  5. Exécuter une commande en tant qu'utilisateur nologin

Tableaux dans les scripts shell

Comment utiliser if-else dans les scripts shell ?

La boucle while dans les scripts shell

Puis-je enregistrer l'activité vi ?

Trier les processus par utilisation de la mémoire

Exécuter un script shell en tant qu'utilisateur différent