Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
38139b1497 | ||
|
|
116678b2d5 | ||
|
|
98dbd6ec40 | ||
|
|
99f9a30d8f | ||
|
|
d2c45f49ab | ||
|
|
5c6189699c | ||
|
|
8fbce76904 | ||
|
|
4e5fec6247 |
@@ -1,94 +1,65 @@
|
||||
# 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
|
||||
# GIT
|
||||
|
||||
Etape 1 : modification du code source (vim)
|
||||
Etape 2 : Ajout du fichier pour "versionning" (git add -A)
|
||||
Etape 3 : Versionner le fichier : (git commit -m "UPDATE ..."
|
||||
Etape 4 : Pousser la version sur le server : git push
|
||||
|
||||
+84
@@ -0,0 +1,84 @@
|
||||
#!/bin/bash
|
||||
|
||||
arg1=$1
|
||||
arg2=$2
|
||||
|
||||
# Script renvoyant les informations système demandees pour ce TP
|
||||
script_demande() {
|
||||
echo "Utilisation du CPU (en %) :"
|
||||
echo "$(top -b -n 1 | grep '%Cpu')"
|
||||
# -n 1 : pour envoyer 1 seule fois l'état (pas en continu)
|
||||
echo "----------"
|
||||
echo "Espace disque (partition /home) :"
|
||||
echo "$(df -h | grep 'Filesystem')"
|
||||
echo "$(df -h | grep '/home')"
|
||||
echo "----------"
|
||||
echo "Nombre de processus actifs (pour tout le system) :"
|
||||
echo "$(($(ps -axf | wc -l) - 3))"
|
||||
# il faut retrancher 3 pour avoir le nombre de processus reel
|
||||
}
|
||||
|
||||
# Script perso renvoyant des informations système plus detaillees
|
||||
renvoi_complet() {
|
||||
echo "Nom de la machine : $(hostname)"
|
||||
echo "----------"
|
||||
echo "Systeme exploitation : $(uname -o)"
|
||||
echo "----------"
|
||||
echo "Nom du noyau : $(uname -s)"
|
||||
echo "Version du noyau : $(uname -r)"
|
||||
echo "Type architecture : $(uname -m)"
|
||||
echo "Type CPU : $(uname -p)"
|
||||
echo "Type plateforme materielle : $(uname -i)"
|
||||
echo "----------"
|
||||
echo "Temps ecoule depuis dernier demarrage du systeme : $(uptime -p)"
|
||||
echo "----------"
|
||||
echo "Reseau :"
|
||||
echo "$(ifconfig)"
|
||||
echo "----------"
|
||||
echo "Espace disque total :"
|
||||
echo "$(df -h --total | grep Filesystem)"
|
||||
echo "$(df -h --total | grep total)"
|
||||
echo "----------"
|
||||
echo "Espace disque detaille :"
|
||||
echo "$(df -h)"
|
||||
echo "----------"
|
||||
echo "Utilisation memoire RAM :"
|
||||
echo "$(free -h)"
|
||||
echo "----------"
|
||||
echo "Processus actifs :"
|
||||
echo "$(ps -axf)"
|
||||
}
|
||||
|
||||
# Execution du bash
|
||||
if [[ ${arg1} == "-w" ]]
|
||||
then
|
||||
if [[ ${arg2} =~ ^[0-9]+$ ]]
|
||||
then
|
||||
while [ true ]
|
||||
do
|
||||
script_demande
|
||||
sleep ${arg2}
|
||||
clear
|
||||
done
|
||||
else
|
||||
echo "Le second argument doit etre un nombre"
|
||||
fi
|
||||
else
|
||||
echo "Souhaitez-vous le script simple (1) ou complet (2) ?"
|
||||
read reponse
|
||||
if [[ $reponse == "1" ]]
|
||||
then
|
||||
echo "---------------------------------------------------------------------------------"
|
||||
echo "Informations systeme demandees pour le TP"
|
||||
echo "----------"
|
||||
script_demande
|
||||
elif [[ $reponse == "2" ]]
|
||||
then
|
||||
echo "---------------------------------------------------------------------------------"
|
||||
echo "Informations systemes detaillees"
|
||||
echo "----------"
|
||||
renvoi_complet
|
||||
else
|
||||
echo "Reponse non conforme"
|
||||
fi
|
||||
fi
|
||||
Reference in New Issue
Block a user