Linux tips - pifou25/docker-jeedom GitHub Wiki

Gérer l'espace disque

ncdu petit utilitaire bien pratique pour visualiser la taille de chaque répertoire et naviguer

du -h -d 1 2>/dev/null pour lister les répertoires et leur taille (et ignorer les erreurs de type access denied)

docker container logs

Vérifier la taille des logs par containers... on a des id de containers, voir ici pour récupérer leur nom:

sudo sh -c "du -ch /var/lib/docker/containers/*/*-json.log"

Si c'est les logs des containers docker, il faut gérer leur option individuellement par exemple dans un docker-compose.yaml:

    logging:
      options:
        max-size: "10m"
        max-file: "1"

journalctl log size

diminuer la tailla avec la valeur cousie ex: journalctl --vacuum-size=200M https://www.loggly.com/ultimate-guide/managing-journal-size/

nettoyer le cache du gestionnaire apt

en général dans /var/cache/apt/archives: sudo apt-get clean

Diminuer le répertoire .git

git repack -a -d -f --depth=250 --window=250

Plus agressif mais est une mauvaise pratique: git gc --aggressive --prune=now

S'il y a beaucoup de repo git dans le disque, on peut automatiser la recherche & repack avec ce genre de script:

#!/bin/bash

find / -type d -name ".git" 2>/dev/null | while read -r dir; do
    size=$(du -sm "$dir" 2>/dev/null | cut -f1)
    if [ "$size" -gt 50 ]; then
        echo "Répertoire trop gros détecté : $dir (${size} Mo)"
        # repertoire parent du .git pour repack dans un (subshell)
        repo_dir=$(dirname "$git_dir")
        echo "Nettoyage du dépôt : $repo_dir"
        (cd "$repo_dir" && git repack -a -d -f --depth=250 --window=250)
    fi
done

Ecraser un fichier énorme sur lequel on n'a pas les droits

echo "" | sudo tee /path/to/the/file

Supprimer les fichiers plus vieux que 30 jours

Utile pour purger les logs par exemple:

find /path/to/directory -type f -mtime +30 -exec rm -f {} \;

  • /path/to/directory == The directory where the search begins. Replace this with the actual path.
  • -type f == Searches only for files (ignores directories).
  • -mtime +30 == Finds files modified more than 30 days ago.
  • -exec rm -f {} ; == Deletes each file found (rm -f forces deletion).