Vider le swap
Ce script permet de désactiver temporairement le swap d'une machine Linux afin de la remettre à zéro.
La variable $SEUIL
permet de définir à quel pourcentage d'utilisation du swap le script le désactivera.
Il vérifiera ensuite si la machine dispose de suffisamment de mémoire vive pour accueillir le swap. Si c'est OK, on continue, sinon on arrête.
Un fichier de log sera généré dans le même répertoire que le script.
| #!/bin/bash
# Chemin du fichier de log
LOG_FILE="swap_usage.log"
# Seuil d'utilisation du swap en pourcentage (multiplié par 10)
SEUIL=800
# Obtient l'utilisation actuelle du swap en pourcentage (arrondi à 1 décimale, multiplié par 10)
SWAP_USAGE=$(free | awk '/Swap/ {print int($3/$2 * 1000)}')
# Obtient la quantité de mémoire vive disponible en Mo
FREE_MEMORY=$(free -m | awk '/Mem/ {print $4}')
# Écrit un message dans le fichier de log et l'affiche à l'écran
log_message() {
local message="$1"
echo "$message"
echo "$(date '+%Y-%m-%d %H:%M:%S'): $message" >> "$LOG_FILE"
}
# Crée le fichier de log s'il n'existe pas
if [ ! -f "$LOG_FILE" ]; then
touch "$LOG_FILE"
fi
# Vérifie si l'utilisation du swap dépasse le seuil
if [ "$SWAP_USAGE" -gt "$SEUIL" ]; then
log_message "L'utilisation du swap est supérieure à $((SEUIL / 10))%."
# Vérifie si la mémoire vive disponible est suffisante
if [ "$FREE_MEMORY" -gt 0 ]; then
log_message "La mémoire vive disponible est suffisante ($FREE_MEMORY Mo). Désactivation du swap en cours..."
# Désactive le swap
swapoff -a
# Réactive le swap
swapon -a
log_message "Le swap a été réinitialisé."
else
log_message "Attention : La mémoire vive disponible est insuffisante. Opération annulée."
fi
else
log_message "L'utilisation du swap est inférieure à $((SEUIL / 10))%."
fi
|