1 Commits
Author SHA1 Message Date
isen a483904841 premiere partie sans bonus 2026-04-03 09:40:46 +00:00
+18 -50
View File
@@ -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)