skip to content

Recherche

Espace Disque

Commandes et astuces pour analyser, surveiller et gérer l'espace disque sous Linux (Debian ici) !

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 {} \;