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 99 additions and 76 deletions
+40 -76
View File
@@ -1,94 +1,58 @@
# Monitoring
---
## Sujet : Moniteur système basique
# ISEN - Cours Sysadmin - TP n°8
### Objectif
Écrire un script **bash** simple permettant d’afficher des informations essentielles sur l’état du système GNU/Linux.
# Prise en main de GIT
---
## Objectifs
## Énoncé
Prise en main des commandes de base de git
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)
## git
L’affichage doit être clair et lisible, avec des unités adaptées.
- A chaques étapes si vous avez un doute, tapez la commande :
---
```
git --help
### 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.
## Configuration utilisateur
*Indications :* `while`, `sleep`, `clear`
- Afficher les variables git de votre utilisateur
---
- modifier la configuration mail et nom d'utilisateur avec :
## Évaluation
```
git config --global ...
```
| Critère | Points |
|-------|--------|
| Fonctionnalité correcte | 10 |
| Lisibilité / commentaires | 10 |
| Bonus surveillance | +4 |
------------------------------------------------------------------------
# CLONE
## récupérer un dépôt
- récupérer localement sur votre instance clientXX le dépôt
"https://git.gastier.net/guillaume/isen2024.git"
- Trouver la commande qui permet d'affichier l'URL d'origine du dépôt
## parser le dépôt
- lister les branches disponibles sur le serveur
- récupérer en local la branche liée a votre poste
------------------------------------------------------------------------
## modifier le code
- ajouter une ligne a la fin du fichier README.md (nom de votre
machine)
- creer le fichier file_post ou post est le nom de votre machine
- ajouter les modifications à votre index
- ajouter les modifications dans votre HEAD
## push du code
- envoyer les modifications au serveur centralisé
------------------------------------------------------------------------
## Conf TP precedent
Le but ici est de récupérer les fichiers de configurations de monitoring
et les placer dans un répertoire sur votre depôt dans votre branche :
isen12@client-isen12:~/isen2024$ git branch
* isen12
master
isen12@client-isen12:~/isen2024$ tree
.
|-- README.md
'-- isen12
'-- monitoring_etc
2 directories, 1 file
------------------------------------------------------------------------
intégrer dans l'index et dans le HEAD puis pousser vos modifications sur
le serveurs centralisé
## MERGE
Mergez vos données dans la branche MASTER
---
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