Compare commits
9
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
99444305fe | ||
|
|
e6e9532bc3 | ||
|
|
30f89bf62c | ||
|
|
98dbd6ec40 | ||
|
|
99f9a30d8f | ||
|
|
d2c45f49ab | ||
|
|
5c6189699c | ||
|
|
8fbce76904 | ||
|
|
4e5fec6247 |
@@ -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 :
|
---
|
||||||
|
|
||||||
```
|
### Commandes ou fichiers possibles
|
||||||
git --help
|
|
||||||
|
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
|
||||||
|
|
||||||
```
|
| Critère | Points |
|
||||||
git config --global ...
|
|-------|--------|
|
||||||
```
|
| 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
+51
@@ -0,0 +1,51 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#FONCTION MONITOR
|
||||||
|
#affiche les parametres demandes
|
||||||
|
monitor(){
|
||||||
|
#On cree la variable CPU qui :
|
||||||
|
# - recupere le fichier sortie de top apres 1 iteration (-n1)
|
||||||
|
# - extrait la ligne '%CPU' (grep)
|
||||||
|
# - recupere la taille de CPU non utilisee (awk + $8)
|
||||||
|
# - stocke la valeur de CPU utilisee (100 - $8)
|
||||||
|
CPU=$(top -n1 | grep "%Cpu" | awk '{print 100 - $8}')
|
||||||
|
|
||||||
|
#On cree la variable MEM qui :
|
||||||
|
# - recupere le fichier de sortie de df
|
||||||
|
# - extrait la ligne contenant la partition sur /home (grep)
|
||||||
|
# - stocke la taille de memoire disponible (awk + $4)
|
||||||
|
MEM=$(df | grep "/home" | awk '{print $4}')
|
||||||
|
|
||||||
|
#On cree la variable PROC qui :
|
||||||
|
# - recupere la liste des processus en sortie de ps aux
|
||||||
|
# - extrait la colonne correspondant a l'etat des processus (awk + $8)
|
||||||
|
# - filtre les lignes pour ne recuperer que celles correspondant au statut "actif" (grep + R)
|
||||||
|
# - stocke le nombre de lignes (wc -l)
|
||||||
|
PROC=$(ps aux | awk '{print $8}' | grep R | wc -l)
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "----- PARAMETRES DE MONITORING -----"
|
||||||
|
echo "Part de CPU utilisee© : $CPU%"
|
||||||
|
echo "Memoire disponible : $MEM octets"
|
||||||
|
echo "Processus actifs : $PROC"
|
||||||
|
echo "------------------------------------"
|
||||||
|
echo ""
|
||||||
|
}
|
||||||
|
|
||||||
|
#CORPS DU SCRIPT
|
||||||
|
|
||||||
|
#S'il n'y a pas d'argument, le script renvoie une seule fois les parametres
|
||||||
|
if [[ "$#" == 0 ]]; then
|
||||||
|
monitor
|
||||||
|
else
|
||||||
|
#S'il y a comme premier agrument "-w" et comme deuxième argumen "x" un entier, le script affiche les paraetres toutes les x secondes a l'infini.
|
||||||
|
if [[ "$#" == 2 && "$1" == "-w" && "$2" =~ ^[0-9]+$ ]]; then
|
||||||
|
while true; do
|
||||||
|
monitor
|
||||||
|
sleep "$2"
|
||||||
|
done
|
||||||
|
#S'il y a des arguments qui sont incorrects, le script renvoie une message adequat
|
||||||
|
else
|
||||||
|
echo "Arguments incorrects"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user