Maintenir et gérer l’espace de stockage sur un système Linux avec différentes commandes ainsi que contrôler la gestion des logs.
📊 Vue d’ensemble du stockage
📋 Contenu détaillé du répertoire
ls -lah
💽 Espace disque des systèmes montés
df -h
🔢 Utilisation des inodes
df -i
🔎 Vue moderne de l’espace disque
duf #à installer
💿 Lister disques et partitions
lsblk -a
📂 Analyse des répertoires
📦 Taille totale d’un répertoire
du -sh nom_dossier
📊 Taille de tous les éléments du dossier courant
du -sh *
🧱 Répertoires 1 niveau avec tri décroissant
du -h --max-depth=1 | sort -hr
📁 Lister uniquement les dossiers
ls -d */
📈 Fichiers/dossiers par ordre de taille
du -sh * 2>/dev/null | sort -hr
🏆 Identification des gros fichiers
🔍 Top 10 des plus gros éléments
du -ah /chemin/vers/repertoire | sort -rh | head -n 10
🐋 Fichiers volumineux (+100M)
find . -type f -size +100M -exec ls -lh {} \; | awk '{ print $NF ": " $5 }'
🗂️ Plus gros fichiers système
find / -type f -size +1G 2>/dev/null | head -10
📁 Plus gros répertoires racine
du -h --max-depth=1 / 2>/dev/null | sort -hr | head -10
🧹 Nettoyage et libération d’espace
🗑️ Nettoyer paquets inutiles (Debian/Ubuntu)
sudo apt autoremove --purge
sudo apt clean
🗑️ Nettoyer paquets inutiles (RedHat/CentOS)
sudo yum autoremove
sudo yum clean all
📜 Nettoyer logs anciens basiques
sudo find /var/log -type f -name "*.log" -mtime +30 -delete
🗂️ Vider les corbeilles utilisateurs
sudo rm -rf /home/*/.local/share/Trash/files/*
🚨 Surveillance en temps réel
📊 Surveillance continue de l’espace
watch -n 5 'df -h'
🔄 Surveillance des gros répertoires
watch -n 10 'du -sh /var/log /tmp /home | sort -hr'
📋 Gestion avancée des logs
📝 Journalctl (logs systemd)
Gestion des logs système avec systemd pour purger et limiter l’espace utilisé
Commandes de nettoyage
# Vérifier l'espace utilisé par le journal
journalctl --disk-usage
# Purger les logs systemd plus anciens que 7 jours
sudo journalctl --vacuum-time=7d
# Purger les logs systemd au-delà d'une certaine taille (ex: garder 100M)
sudo journalctl --vacuum-size=100M
# Afficher les logs depuis le dernier boot
journalctl -b
# Suivre les logs en temps réel
journalctl -f
# Afficher les logs pour un service spécifique
journalctl -u ssh
Configuration permanente
# Éditer la configuration du journal
sudo nano /etc/systemd/journald.conf
# Paramètres utiles dans [Journal] :
SystemMaxUse=500M # Limite d'espace total
SystemKeepFree=100M # Espace libre minimum
SystemMaxFileSize=50M # Taille max par fichier
MaxRetentionSec=2592000 # Rétention 30 jours
# Redémarrer après modification
sudo systemctl restart systemd-journald
🔄 Logrotate (rotation automatique)
Système de rotation automatique des fichiers logs pour éviter qu’ils grossissent indéfiniment
# Afficher la configuration générale
cat /etc/logrotate.conf
# Forcer la rotation des logs
sudo logrotate -f /etc/logrotate.conf
# Consulter la configuration d'une application
cat /etc/logrotate.d/apache2
# Paramètres courants dans la config :
rotate 4 # Garder 4 rotations
compress # Compresser les anciens logs
daily # Rotation quotidienne
missingok # Ignore si fichier manquant
🔍 Auditd (logs d’audit système)
Système d’audit pour tracer les accès et modifications système critiques
# Installer auditd si nécessaire
sudo apt-get install auditd
# Afficher les règles d'audit en cours
sudo auditctl -l
# Voir les logs d'audit récents (exemple pour AVC)
sudo ausearch -m avc -ts today
Configuration auditd
# Configuration principale
sudo nano /etc/audit/auditd.conf
# Paramètres utiles :
max_log_file = 50 # Taille max (Mo)
max_log_file_action = rotate # Actions : rotate, suspend, keep_logs, syslog
space_left = 75 # Seuil d'alerte (Mo)
action_mail_acct = root # Mail d'alerte
# Redémarrer après modification
sudo systemctl restart auditd
Règles d’audit personnalisées
# Les règles se trouvent dans :
/etc/audit/audit.rules
# ou dans des fichiers sous :
/etc/audit/rules.d/
# Exemple : surveiller les modifications du fichier /etc/passwd
-w /etc/passwd -p wa -k passwd_changes
# Appliquer les nouvelles règles
sudo systemctl restart auditd
🧹 Nettoyage manuel /var/log
Commandes pour purger manuellement les fichiers logs et récupérer de l’espace
# Supprimer les fichiers logs compressés (.gz)
sudo find /var/log -type f -name "*.gz" -delete
# Supprimer les fichiers logs vides
sudo find /var/log -type f -empty -delete
# Supprimer les fichiers logs modifiés il y a plus de 30 jours
sudo find /var/log -type f -mtime +30 -exec rm {} \;