Quand je lance df -h
sur mon serveur Amazon EC2, voici la sortie:
[ec2-user@ip-XXXX ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 25G 25G 0 100% /
tmpfs 4.0G 0 4.0G 0% /dev/shm
pour une raison quelconque, quelque chose mange mon espace de stockage.
Im essayant de trouver tous les gros fichiers/dossiers et voici ce que je récupère:
[ec2-user@ip-XXXX ~]$ Sudo du -a / | sort -n -r | head -n 10
993580 /
639296 /usr
237284 /usr/share
217908 /usr/lib
206884 /opt
150236 /opt/app
150232 /opt/app/current
150224 /opt/app/current/[deleted].com
113432 /usr/lib64
Comment savoir ce qui mange mon espace de stockage?
Eh bien, je pense que son (ou plusieurs) fichiers journaux qui sont devenus trop volumineux et doivent être supprimés/sauvegardés. Je suggère d'aller d'abord chercher les gros fichiers. Trouvez donc tous les fichiers supérieurs à 10 MB
(10 Mo est une taille de fichier assez grande, vous pouvez choisir +1 Mo pour 1 Mo de la même manière)
Sudo find / -type f -size +10M -exec ls -lh {} \;
et maintenant vous pouvez identifier ceux qui causent le problème et les traiter en conséquence.
Quant à votre original du -a / | sort -n -r | head -n 10
, cela ne fonctionnera pas car il est trié par taille, et donc, tous les répertoires ancêtres d'un fichier volumineux remonteront la pyramide, tandis que le fichier individuel sera très probablement manqué.
Remarque: Il devrait être assez simple de remarquer la présence d'autres fichiers journaux/binaires similaires à l'emplacement des fichiers que vous recherchez, donc comme suggestion, faites cd
dans le répertoire contenant le fichier d'origine à nettoyer plusieurs fichiers du même type. Vous pouvez également parcourir la commande pour les fichiers dont la taille est supérieure à 1MB
suivant, et ainsi de suite.
Si vous n'êtes pas en mesure de trouver un fichier gigantesque, la suppression de certains processus pourrait résoudre le problème (cela a fonctionné pour moi, lisez la réponse complète pour savoir pourquoi)
Plus tôt:
/dev/xvda1 8256952 7837552 0100% /
Maintenant
/dev/xvda18256952 1062780 6774744 14% /
Raison: Si vous faites rm <filename>
sur un fichier ouvert par un processus, il ne supprime pas réellement le fichier et le processus pourrait encore écrire dans le fichier. Ces fichiers fantômes ne peuvent pas être trouvés par la commande find ou supprimés. Utilisez cette commande pour savoir quels processus utilisent des fichiers supprimés:
lsof +L1
Redémarrez la machine ou arrêtez les processus pour libérer les fichiers.
À /
, tapez du -hs *
comme root
:
$ Sudo su -
cd /; du -hs *
Vous verrez la taille complète de tous les dossiers et identifierez les plus gros.
Cet espace est consommé par les notifications par mail
vous pouvez le vérifier en tapant
Sudo find / -type f -size +1000M -exec ls -lh {} \;
Il affichera de grands dossiers au-dessus de 1000 Mo
Le résultat aura un dossier
/var/mail/username
Vous pouvez libérer cet espace en exécutant la commande suivante
> /var/mail/username
Notez que le symbole supérieur à (>) n'est pas une invite, vous devez exécuter la cmd avec.
Vérifiez maintenant que vous libérez de l'espace en
df -h
Vous avez maintenant suffisamment d'espace libre, profitez-en ... :)
la réponse de ansh0l est le chemin à parcourir pour trouver des fichiers volumineux. Mais, si vous voulez voir combien d'espace chaque répertoire de votre système de fichiers consomme, accédez au répertoire racine, puis faites du -k --max-depth=
'. Cela vous montrera combien d'espace est consommé par chaque sous-répertoire du répertoire racine. Lorsque vous repérez le coupable, accédez à ce répertoire, puis exécutez à nouveau la même commande et répétez l'opération jusqu'à ce que vous trouviez les fichiers qui consomment tout l'espace.
Si vous avez des instantanés sur le système de fichiers, l'utilisation ne s'affiche pas dans le système d'exploitation.
Ainsi, plus vous laissez votre instantané, plus il consommera de disque sur votre volume actuel. Si vous supprimez l'instantané, redémarrez la capacité de disque manquante réapparaîtra.