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).

mount USB device

https://linuxconfig.org/howto-mount-usb-drive-in-linux liste des périphériques: sudo fdisk -l

liste les partitions et leur UUID: sudo blkid -c /dev/null

lsusb ou lsblk pour lister les devices USB ou les 'blocks' (partitions logiques) et leur point de montage.

permanent mount: declare into /etc/fstab

Créer le répertoire avant, définir le 'montage' dans /etc/fstab, puis sudo mount

# champs séparés par des espaces:
# <filesystem>   <mnt path>   <type ntfs|ext4|...>  <options>       <dump>  <pass>
UUID=b476f674-33ae-4b60-8997-3b524c2b33f8 /media/usb1 ext4 rw,user,noexec,nofail,auto 0 0
UUID=5ED4B67ED4B6584B /media/samba ntfs rw,user,noexec,nofail,auto,uid=1000,gid=1000,umask=022 0 0

rsync

https://blog.stephane-robert.info/docs/admin-serveurs/linux/reseau/rsync/#_top

Exemple d'utilisation: rsync -a -z --progress /local/source 192.168.1.25:/distant/destination

⚠️ **GitHub.com Fallback** ⚠️