Linux fournit des informations plus détaillées sur la mémoire que celles affichées par la commande de base free
. Dans cette étape, vous allez explorer d'autres sources d'informations sur la mémoire et créer un résumé complet de la mémoire.
Exploration de /proc/meminfo
Le fichier /proc/meminfo
contient des informations détaillées sur la mémoire de votre système. Examinons-le :
head -20 /proc/meminfo
Ce fichier contient des dizaines de valeurs liées à la mémoire, notamment :
MemTotal
: RAM totale utilisable
MemFree
: Mémoire libre
MemAvailable
: Mémoire disponible
Buffers
: Mémoire utilisée par les tampons du noyau
Cached
: Mémoire utilisée pour le cache de fichiers
SwapTotal
: Espace de swap total
SwapFree
: Espace de swap libre
Extractions de quelques informations clés de ce fichier :
grep -E "MemTotal|MemFree|MemAvailable|Buffers|Cached|SwapTotal|SwapFree" /proc/meminfo > ~/project/memory_data/meminfo_excerpt.txt
Affichage des informations extraites :
cat ~/project/memory_data/meminfo_excerpt.txt
Création d'un résumé complet de la mémoire
Maintenant, créons un script qui génère un rapport de résumé complet de la mémoire. Créez un nouveau fichier de script :
nano ~/project/memory_data/create_summary.sh
Ajoutez le contenu suivant :
#!/bin/bash
## Définir le fichier de sortie avec un horodatage
output_file=~/project/memory_data/memory_summary_$(date +%Y%m%d_%H%M%S).txt
## Créer l'en-tête
echo "LINUX MEMORY SUMMARY REPORT" > $output_file
echo "===========================" >> $output_file
echo "Date: $(date)" >> $output_file
echo "" >> $output_file
## Statistiques de base de la mémoire
echo "BASIC MEMORY STATISTICS:" >> $output_file
free -h >> $output_file
echo "" >> $output_file
## Informations détaillées sur la mémoire
echo "DETAILED MEMORY INFORMATION:" >> $output_file
echo "Total RAM: $(grep MemTotal /proc/meminfo | awk '{print $2 " " $3}')" >> $output_file
echo "Free RAM: $(grep MemFree /proc/meminfo | awk '{print $2 " " $3}')" >> $output_file
echo "Available RAM: $(grep MemAvailable /proc/meminfo | awk '{print $2 " " $3}')" >> $output_file
echo "Buffer memory: $(grep Buffers /proc/meminfo | awk '{print $2 " " $3}')" >> $output_file
echo "Cache memory: $(grep "^Cached:" /proc/meminfo | awk '{print $2 " " $3}')" >> $output_file
echo "" >> $output_file
## Informations sur le swap
echo "SWAP INFORMATION:" >> $output_file
echo "Total Swap: $(grep SwapTotal /proc/meminfo | awk '{print $2 " " $3}')" >> $output_file
echo "Free Swap: $(grep SwapFree /proc/meminfo | awk '{print $2 " " $3}')" >> $output_file
echo "" >> $output_file
## Calcul du pourcentage d'utilisation de la mémoire
total_mem=$(grep MemTotal /proc/meminfo | awk '{print $2}')
used_mem=$(grep MemTotal /proc/meminfo | awk '{print $2}')
used_mem=$((used_mem - $(grep MemFree /proc/meminfo | awk '{print $2}')))
used_mem=$((used_mem - $(grep Buffers /proc/meminfo | awk '{print $2}')))
used_mem=$((used_mem - $(grep "^Cached:" /proc/meminfo | awk '{print $2}')))
mem_percentage=$((used_mem * 100 / total_mem))
echo "MEMORY USAGE SUMMARY:" >> $output_file
echo "Memory usage percentage: ${mem_percentage}%" >> $output_file
echo "" >> $output_file
echo "Memory summary report generated at $output_file"
Enregistrez le fichier en appuyant sur Ctrl+O
, puis Entrée
, et quittez avec Ctrl+X
.
Rendez le script exécutable :
chmod +x ~/project/memory_data/create_summary.sh
Exécutez le script pour générer le rapport de résumé :
~/project/memory_data/create_summary.sh
Après l'exécution du script, affichez le rapport de résumé généré :
cat ~/project/memory_data/memory_summary_*
Ce rapport complet vous donne une vue détaillée de l'état de la mémoire de votre système en combinant des données de plusieurs sources.
Création d'une commande simple d'état de la mémoire
Enfin, créons une commande simple sur une seule ligne qui affiche l'état actuel de la mémoire dans un format concis :
echo "Memory status: $(free -h | grep Mem | awk '{print "Total:"$2, "Used:"$3, "Free:"$4, "Available:"$7}')" > ~/project/memory_data/memory_status.txt
Affichez l'état de la mémoire :
cat ~/project/memory_data/memory_status.txt
Cette commande extrait les informations les plus importantes de la sortie de la commande free
et les présente dans un format compact.