8 Commits
2 changed files with 129 additions and 74 deletions
+45 -74
View File
@@ -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
View File
@@ -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