Magentix

Développeur Magento indépendant depuis 2009

Billets : Nettoyage de printemps d'un système Ubuntu / Debian


Nettoyage de printemps d'un système Ubuntu / Debian

Les caches, les logs ou encore des fichiers obsolètes peuvent alourdir inutilement les disques durs : un contrôle et un nettoyage s'imposent.

  1. Taille du disque
  2. Taille des répertoires
  3. Journaux
  4. Fichiers des paquets
  5. Thumbnails
  6. Fichiers de sauvegarde
  7. Logs
  8. Composer
  9. Flush quotidien avec anacron

Taille du disque

Un premier contrôle rapide de la place restante sur les disques s'effectue par la commande df (disk free) :

df -h

On identifie assez rapidement la place utilisée sur les disques, par exemple ici sur un SSD :

Sys. de fichiers               Taille Utilisé Dispo Uti% Monté sur
/dev/nvme0n1p2                   938G     84G  807G  10% /

Taille des répertoires

La commande du est très pratique pour contrôler la taille des dossiers.

On utilise l'option h pour obtenir des tailles plus lisibles, et l'option s pour ne pas afficher le détail des fichiers et sous dossiers.

Quelques exemples sur des répertoires souvent très volumineux :

sudo du -sh /var/log
sudo du -sh /tmp
sudo du -sh ~/.cache/*/

Pour contrôler la taille des sous-dossiers du dossier courant :

sudo du -sh ./*/

Journaux

L'affichage de la taille des journaux du système s'effectue par le biais de la commande suivante :

journalctl --disk-usage

Les logs sont stockés sous forme de fichiers persistants dans le dossier var/log/journal s'il existe. Les journaux ont souvent tendance à se remplir très rapidement.

Pour nettoyer ces journaux :

journalctl --vacuum-time=1d > /dev/null 2>&1

Dans cet exemple on supprime tous les logs de plus de 24 heures.

Fichiers des paquets

Un nettoyage des fichiers temporaires et des fichiers d'installation peut s'effectuer rapidement.

Supprimer le cache des paquets périmés :

sudo apt-get autoclean

Supprimer tout le cache :

sudo apt-get clean

Supprimer les paquets installés comme dépendances et devenus inutiles :

sudo apt-get autoremove

Thumbnails

Les miniatures des images de l'interface sont stockées dans les dossiers ~/.thumbnails, ~/.cache/thumbnails.

Pour nettoyer les images, on supprime sans crainte les miniatures générées depuis plus de 7 jours :

find ~/.thumbnails -type f -ctime +7 -delete
find ~/.cache/thumbnails -type f -ctime +7 -delete

Fichiers de sauvegarde

Les fichiers avec un ~ à la fin de leur nom sont des copies de sauvegarde créées automatiquement pour les documents ouverts par certaines applications (gedit, LibreOffice...). On peut les supprimer sans problème.

find ~/ -name '*~' -exec rm {} \;

Logs

Les logs sont stockées dans le dossier /var/log. Les logrotate par défaut (apache, php, dpkg...) sont souvent importants (12 mois) et il fastidieux de les modifier manuellement.

Sauf dans des cas bien spécifiques, il est très rare d'aller fouiller dans des archives de log de plusieurs mois.

La façon la plus radicale et efficace de nettoyer ces logs est de supprimer toutes les archives :

find /var/log/ -type f -regex '.*\.[0-9]+\.gz$' -delete

Composer

Si vous développez et utilisez quotidiennement composer, pensez à supprimer son cache de temps en temps.

Le cache de composer peut grossir rapidement, pour s'en rendre compte :

sudo du -sh ~/.cache/composer
sudo du -sh ~/.composer/cache

Pour supprimer le cache :

composer clearcache
rm -rf ~/.cache/composer
rm -rf ~/.composer/cache

Flush quotidien avec anacron

J'ai pour habitude d'effectuer quotidiennement des nettoyages des fichiers et dossiers les plus volumineux via anacron. Cela permet d'éviter un encombrement inutile.

nano /etc/anacrontab
1       10      log.flush       find /var/log/ -type f -regex '.*\.[0-9]+\.gz$' -delete
1       20      journal.flush   journalctl --vacuum-time=1d > /dev/null 2>&1
1       30      thumb.flush     find ~/.thumbnails -type f -ctime +7 -delete