Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a483904841 |
+18
-50
@@ -1,59 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
#Script "monitor.sh", en 3 parties : affichage du CPU, espace disque, nombre de processus actif
|
||||
option=$1
|
||||
time=$2
|
||||
|
||||
#------------------FONCTION 1 : utilisation du CPU-----------------------------------------
|
||||
usage_cpu(){
|
||||
#Afficher l'utilisation du CPU (de manieÃre fgee : 1 seule iteÃration) : top -n1
|
||||
#On recupere uniquement la ligne nous interessant sur la CPU : | grep "Cpu"
|
||||
#On transforme la ligne en colonne : tr ',' '\n'
|
||||
#On peut maintenant recuperer la ligne correspondant a id (CPU inactive) : grep "id"
|
||||
#Et on ne garde que le chiffre avec : cut -d' ' -f2
|
||||
# recupere la quantite de CPU
|
||||
# top affiche les infos
|
||||
# grep recupere la ligne qui contient les infos de % CPU
|
||||
# awk recupere la 8eme zone d'enregistrement qui correspond au CPU libre (idle)
|
||||
# effectue 100 - ligen CPU pour obtenir le CPU utilisé
|
||||
cpu=$(top -bn1 | grep "%Cpu(s)" | awk '{print 100 -$8}')
|
||||
|
||||
id=$(top -n1 | grep "Cpu" | tr ',' '/n' | grep 'id' | cut -d' ' -f2)
|
||||
CPU=$( echo "100-${id}" | bc) #bc car on gere des decimaux
|
||||
echo "Utilisation du CPU : ${CPU}% "
|
||||
}
|
||||
# recupere la memoire utilise
|
||||
# def -h afficher les infos de memoire du dossier home
|
||||
#grep overlay sort la ligne overlay qui contient les infos generales
|
||||
#awk recupere la 5eme zone d enregistrement qui contient la quantite de memoire utilise
|
||||
mem=$(df -h /home | grep "overlay" | awk '{print $5}')
|
||||
|
||||
#---------------------------FONCTION 2 : espace libre de /home --------------------------------
|
||||
espace_disque(){
|
||||
#Afficher l'espace libre des disques des partitions (en taille lisible Go/Mo -h) : df -h
|
||||
#On recupere la partition liee a /home : grep "home"
|
||||
#On remplace les nombreux espaces par un seul : tr -s ' '
|
||||
# ps liste les processu
|
||||
# wc -l affiche le nombre de ligne (1 une ligne par process) et donc le nombre de processus
|
||||
proc=$(ps ax | wc -l)
|
||||
|
||||
total=$( df -h | grep "home" | tr -s ' ' | cut -d' ' -f2 )
|
||||
utilise=$( df -h | grep "home" | tr -s ' ' | cut -d' ' -f3 )
|
||||
libre=$( df -h | grep "home" | tr -s ' ' | cut -d' ' -f4 )
|
||||
pourcent_libre=$( df -h | grep "home" | tr -s ' ' | cut -d' ' -f5 )
|
||||
echo " La machine utilise actuellement ${cpu}% de son CPU, ${mem} de la capacite de stockage du dossier home, et ${proc} processus sont en cours."
|
||||
|
||||
echo "Partition /home : espace total=${total} - utilise=${utilise} (${pourcent_libre}) - libre=${libre}"
|
||||
}
|
||||
|
||||
#---------------------------FONCTION 3 : nombre de processus en cours ---------------------------
|
||||
nombre_process(){
|
||||
#Afficher la liste des processus en cours (sans prendre en compte la premiere ligne pour ne pas la compter avec le wc -l : --no-header) : ps axf --no-headers
|
||||
nb=$(ps axf --no-header | wc -l)
|
||||
echo "Nombre de processus en cours : ${nb}"
|
||||
|
||||
}
|
||||
|
||||
#-----------------------SCRIPT : VERIFICATION DES ARGUMENTS - APPEL DES FONCTIONS-----------------
|
||||
|
||||
if [ $1 == '-w' ] ; then
|
||||
intervalle=${2}
|
||||
|
||||
while true ; do #boucle infinie tant que l'utilisateur ne la stoppe pas
|
||||
clear #permet d'effacer le terminal
|
||||
usage_cpu""
|
||||
espace_disque""
|
||||
nombre_process""
|
||||
sleep ${intervalle}
|
||||
done
|
||||
|
||||
else
|
||||
usage_cpu""
|
||||
espace_disque""
|
||||
nombre_process""
|
||||
fi
|
||||
sleep(time)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user