Le problème est que «du» doit énumérer tous les objets de la sous-arborescence. Il s'agit d'une opération intensive en métadonnées, qui prend un certain temps pour la plupart des systèmes de fichiers Linux. Certains systèmes de fichiers, NTFS et NSS de Novell viennent à l'esprit, ont la capacité de garder une trace des tailles de répertoire comme celle-ci dans les métadonnées, ce qui rend cette opération beaucoup plus rapide. En règle générale, si votre système de fichiers prend en charge les quotas de répertoires, il doit conserver ces données en interne pour l'application, chaque changement de taille est répliqué dans l'arborescence de répertoires jusqu'au point de quota (NTFS) ou dans chaque répertoire (NSS ) quand cela se produit, il est donc très rapide d'obtenir une taille d'arborescence de répertoires.
Malheureusement, il n'y a aucun moyen d'accélérer le du, juste des solutions de contournement.
- Exécutez «du» en mode batch et vivez avec des résultats non live
- Créez un nouveau système de fichiers et utilisez plutôt 'df'
- Créez un fichier volumineux qui contiendra votre répertoire, montez-le en boucle, formatez-le et utilisez plutôt 'df' sur ce nouveau point de montage. Si vous avez besoin de plus d'espace, démontez le montage de bouclage, étendez le fichier et remontez.
Vous donne les tailles au format KB / MB / GB humain à partir de votre répertoire de travail actuel.
la source
Avec les outils standard, vous devez obtenir la taille de chaque fichier du répertoire chaque fois que vous voulez connaître la taille totale. Un moyen peut-être plus efficace de le faire serait d'avoir un "moniteur de taille de répertoire", qui garde une trace de la taille actuelle du répertoire. Il n'y a rien de tel (que je sache), mais vous pouvez en implémenter un avec
inotify
. Peut-être pas avec bash (etinotify-tools
), mais vous pourriez probablement utiliser python et pyinotify, par exemple.la source
Vous pourriez trouver
gt5
utile. Il stocke lesdu
informations les plus récentes et fait une différence par rapport à la prochaine exécution. Il affiche sa sortie à l'aide d'un navigateur en mode texte tel quelinks
.la source
En outre, pensez à l'option -x sur du - "un système de fichiers" si vous le faites
Vous ne verrez que le résumé de l'utilisation du disque sur votre partition racine, et il n'essaiera pas d'ajouter / proc, / sys, / dev, etc.
la source
si vous ne souhaitez utiliser le disque que pour le système de fichiers racine,
df -h /
la source
Non. Pourriez-vous périodiquement faire un du piped dans un fichier texte, dans un travail cron configuré pour s'exécuter pendant la nuit, afin que vous n'ayez pas de données tout à fait disponibles immédiatement disponibles?
Notez que la mesure de l'espace disque utilisé par un dossier contenant un grand nombre de fichiers sous Windows prend également un certain temps.
la source
df -h fera l'affaire
la source
df -kh /
cela vous montrera l'espace disque utilisé et disponible.
la source
Peut-être
un texte supplémentaire car une réponse courte et concise ne suffit pas pour que serverfault pense que je suis humain.
la source
Pour trouver l'espace sous ce répertoire uniquement, répertoriez-le à la place de
/
. Pour trouver l'espace sous les répertoiresfoo
etbar
, répertoriez les deux:la source
Vous devez utiliser dnotify pour calculer l'utilisation du disque si le système de fichiers n'est pas changé souvent.
la source