10 Commits
Author SHA1 Message Date
Fabien cb553e274d FIchier rendu executable 2026-04-04 08:31:34 +00:00
Fabien 9d50acd323 Finalisation du scrip monitor.sh 2026-04-04 08:29:59 +00:00
Fabien 0113f04a1f Debut du script 2026-04-03 09:15:17 +00:00
Fabien 5318c6c703 Debut du script 2026-04-03 09:00:32 +00:00
guillaume.astier 98dbd6ec40 [README] sujet DM 2026-04-03 10:29:59 +02:00
guillaume.astier 99f9a30d8f [init] programme monitor 2026-04-03 10:26:36 +02:00
Alexandre Guegan d2c45f49ab Ligne ajoutee a la fin du fichier 'README.md' + fichier 'file_guegan-a-client' cree 2026-04-03 10:09:24 +02:00
isen 5c6189699c Ajout config monitoring 2025-04-04 12:38:59 +00:00
isen 8fbce76904 Modif READ.me et ajout file_mstr05 2025-04-04 12:27:18 +00:00
tunz 4e5fec6247 ca va marcher bon sang 2024-04-12 13:46:30 +00:00
2 changed files with 117 additions and 0 deletions
+58
View File
@@ -0,0 +1,58 @@
# Monitoring
---
## Sujet : Moniteur système basique
### Objectif
Écrire un script **bash** simple permettant d’afficher des informations essentielles sur l’état du système GNU/Linux.
---
## Énoncé
Vous devez écrire un script shell nommé `monitor.sh` affichant les informations suivantes :
- Utilisation du CPU (en %)C
- Espace disque (partition home `/home`)
- Nombre de processus actifs (pour tout le système)
L’affichage doit être clair et lisible, avec des unités adaptées.
---
### Commandes ou fichiers possibles
Vous pouvez utiliser soit les commandes système ou les fichiers /proc
- `top`, `free`, `df`, `ps`
- `/proc/cpuinfo`, `/proc/meminfo`
---
## Bonus (facultatif)
### Mode surveillance
Ajouter un mode optionnel :
```bash
./monitor.sh -w X
```
Le script se rafraîchit toutes les `X` secondes.
*Indications :* `while`, `sleep`, `clear`
---
## Évaluation
| Critère | Points |
|-------|--------|
| Fonctionnalité correcte | 10 |
| Lisibilité / commentaires | 10 |
| Bonus surveillance | +4 |
---
Executable
+59
View File
@@ -0,0 +1,59 @@
#!/bin/bash
#Script "monitor.sh", en 3 parties : affichage du CPU, espace disque, nombre de processus actif
#------------------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
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}% "
}
#---------------------------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 ' '
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 "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