Отслеживание места на диске в Linux?

При администрировании систем Linux я часто обнаруживаю, что изо всех сил пытаюсь найти виновника после того, как раздел заполнен. Обычно я использую du/| sort -nr , но в большой файловой системе это занимает много времени, прежде чем будут возвращены какие-либо результаты.

Кроме того, это обычно помогает выделить худшего нарушителя, но я часто обнаруживал себя прибегая к du без sort в более тонких случаях, а затем приходилось перебирать выходные данные.

Я бы предпочел решение для командной строки, основанное на стандартных командах Linux, поскольку мне приходится администрировать довольно много систем, а установка нового программного обеспечения — хлопот (особенно, когда не хватает места на диске!)


Попробуйте ncdu , отличный анализатор использования диска из командной строки:


Попробуйте ncdu , отличный анализатор использования диска из командной строки:


Не уходи вправо на du/. Используйте df , чтобы найти раздел, который причиняет вам боль, а затем попробуйте команды du .

Мне нравится попробовать

  # U.S.du -h  |  grep '[0-9 .]  + G' # Othersdu -h  |  grep '[0-9 ,]  + G'  

, потому что он печатает размеры в «удобочитаемой форме». Если у вас нет действительно маленьких разделов, поиск каталогов в гигабайтах — довольно хороший фильтр для того, что вы хотите. Это займет у вас некоторое время, но, если вы не настроили квоты, я думаю, что так оно и будет.

Как @jchavannes указывает в комментариях, выражение может стать более точным если вы обнаружите слишком много ложных срабатываний. Я включил предложение, которое делает его лучше, но все еще есть ложные срабатывания, поэтому есть только компромиссы (более простое выражение, худшие результаты; более сложное и длинное выражение, лучшие результаты). Если у вас слишком много маленьких каталогов, отображаемых в вашем выводе, скорректируйте свое регулярное выражение соответствующим образом. Например,

  grep '^  s * [0-9 .]  + G'  

даже больше точный (каталоги

Если у вас есть квоты, вы можете использовать

  quota -v  

, чтобы найти пользователей, которые перегружают диск.


Не переходите сразу к du/. Используйте df , чтобы найти раздел, который причиняет вам боль, а затем попробуйте команды du .

Мне нравится попробовать

  # U.S.du -h  |  grep '[0-9 . ]  + G '# Othersdu -h  |  grep '[0-9 ,]  + G'  

, потому что он печатает размеры в «удобочитаемой форме». Если у вас нет действительно маленьких разделов, поиск каталогов в гигабайтах — довольно хороший фильтр для того, что вы хотите. Это займет у вас некоторое время, но, если вы не настроили квоты, я думаю, что так оно и будет.

Как @jchavannes указывает в комментариях, выражение может стать более точным если вы обнаружите слишком много ложных срабатываний. Я включил предложение, которое делает его лучше, но все еще есть ложные срабатывания, поэтому есть только компромиссы (более простое выражение, худшие результаты; более сложное и длинное выражение, лучшие результаты). Если у вас слишком много маленьких каталогов, отображаемых в вашем выводе, скорректируйте свое регулярное выражение соответствующим образом. Например,

  grep '^  s * [0-9 .]  + G'  

даже больше точный (каталоги

Если у вас есть квоты, вы можете использовать

  quota -v  

, чтобы найти пользователей, которые перегружают диск.


Для первого взгляда используйте «сводное» представление du :

  du -s/*  

Эффект состоит в том, чтобы напечатать размер каждого из его аргументов, т.е. каждой корневой папки в приведенном выше случае.

Кроме того, оба GNU du и BSD du могут иметь ограничение по глубине (но POSIX du не может!):

  • GNU (Linux,…):

      du --max-depth 3   
  • BSD (macOS,…):

      du -  d 3  

Это ограничит отображение вывода глубиной 3. Рассчитанный и отображаемый размер по-прежнему итого на всю глубину, конечно. Но, несмотря на это, ограничение глубины отображения резко ускоряет вычисления.

Еще одна полезная опция — -h (слова как в GNU, так и в BSD, но, опять же, не только для POSIX du ) для «удобочитаемого» вывода (например, с использованием KiB, MiB и т. д.).


Для первого взгляда используйте «сводное» представление du :

   du -s/*  

Эффект состоит в том, чтобы напечатать размер каждого из его аргументов, то есть каждой корневой папки в приведенном выше случае.

Кроме того, , и GNU du , и BSD du могут иметь ограничение по глубине (но POSIX du не может!):

  • GNU (Linux,…):

      du --max  -depth 3  
  • BSD (macOS,…):

       du -d 3  

Это ограничит отображение вывода до глубина 3. Рассчитанный и отображаемый размер, конечно же, является суммой полной глубины.. Но, несмотря на это, ограничение глубины отображения резко ускоряет вычисления.

Еще одна полезная опция — -h (слова как в GNU, так и в BSD, но, опять же, не только для POSIX du ) для «удобочитаемого» вывода (т. е. с использованием KiB, MiB и т. д.).


Вы также можете запустить следующую команду, используя du :

  ~ # du -Pshx /* 2>/dev/null  
  • Параметр -s суммирует и отображает общее количество для каждого аргумента.
  • h печатает Mio, Gio и т. д.
  • x = оставаться в одной файловой системе (очень полезно ).
  • P = не переходите по символическим ссылкам (например, это может привести к двойному подсчету файлов).

Будьте осторожны, каталог /root не будет отображаться, вам нужно запустить ~ # du -Pshx/root 2>/dev/null чтобы получить это (однажды я изо всех сил старался не указывать, что мой каталог /root ушел l).

Изменить: исправленный параметр -P


Вы можете также выполните следующую команду, используя du :

  ~ # du -Pshx/* 2>/dev/null  
  • Параметр -s суммирует и отображает общее количество для каждого аргумента.
  • h печатает Mio, Gio и т. д.
  • x = оставаться в одной файловой системе (очень полезно).
  • P = не следуйте символическим ссылкам (например, это может привести к двойному подсчету файлов).

Будьте осторожны, /root не будет отображаться, вам нужно запустить ~ # du -Pshx/root 2>/dev/null , чтобы получить это (однажды я очень боролся, не указывая, что мой каталог /root переполнен).

Изменить: исправленный параметр -P


Поиск самых больших файлов в файловой системе всегда занимает много времени. время. По определению вы должны пройти всю файловую систему в поисках больших файлов. Единственное решение, вероятно, — запустить задание cron на всех ваших системах, чтобы файл был готов заранее.

Еще одна вещь, опция x для du полезна, чтобы du не следовал за точками монтирования. в другие файловые системы. То есть:

  du -x [path]  

Полная команда, которую я обычно выполняю, выглядит так:

  sudo du -xm/|  sort -rn> usage.txt  

-m означает возвращать результаты в мегабайтах, а sort -rn сначала отсортирует результаты по наибольшему числу. Затем вы можете открыть usage.txt в редакторе, и самые большие папки (начиная с/) будут вверху.


Поиск самых больших файлов в файловой системе всегда занимает много времени. По определению вы должны пройти всю файловую систему в поисках больших файлов. Единственное решение, вероятно, — запустить задание cron на всех ваших системах, чтобы файл был готов заранее.

Еще одна вещь, опция x для du полезна, чтобы du не следовал за точками монтирования. в другие файловые системы. То есть:

  du -x [path]  

Полная команда, которую я обычно выполняю, выглядит так:

  sudo du -xm/|  sort -rn> usage.txt  

-m означает возвращать результаты в мегабайтах, а sort -rn сначала отсортирует результаты по наибольшему числу. Затем вы можете открыть usage.txt в редакторе, и самые большие папки (начиная с/) будут вверху.


Я всегда использую du -sm * | sort -n , который дает вам отсортированный список использования подкаталогов текущего рабочего каталога в мебибайтах.

Вы также можете попробовать Konqueror, который имеет размер режим просмотра, аналогичный тому, что делает WinDirStat в Windows: он дает вам наглядное представление о том, какие файлы/каталоги занимают большую часть вашего пространства.

Обновление: в более поздних версиях вы также можете использовать du -sh * | sort -h , который покажет удобочитаемые размеры файлов и сортирует по ним. (числа будут иметь суффикс K, M, G, …)

Для людей, которые ищут альтернативу представлению размера файла KDE3 Konqueror, могут взглянуть на filelight, хотя это не так хорошо .


Я всегда использую du -sm * | sort -n , который дает вам отсортированный список использования подкаталогов текущего рабочего каталога в мебибайтах.

Вы также можете попробовать Konqueror, который имеет размер view «, который похож на то, что WinDirStat делает в Windows: он дает вам визуальное представление о том, какие файлы/каталоги занимают большую часть вашего пространства.

Обновление: в более поздних версиях вы также можете использовать du -sh * | sort -h , который покажет удобочитаемые размеры файлов и сортирует по ним. (числа будут иметь суффикс K, M, G, …)

Для людей, которые ищут альтернативу представлению размера файла KDE3 Konqueror, могут взглянуть на filelight, хотя это не так хорошо .


Я использую это для 25 самых серьезных преступников ниже текущего каталога

  # -S, чтобы не включать размер подкаталога, отсортированный и ограниченный верхними 25du -S.  |  sort -nr |  голова -25  


Я использую это для 25 самых серьезных нарушителей, находящихся ниже текущего каталога

   # -S, чтобы не включать размер подкаталога, отсортировать и ограничить верхние 25du -S. |  sort -nr |  head -25  

В предыдущей компании у нас было задание cron, которое выполнялось за ночь и идентифицировал любые файлы более определенного размера, например

  find/-size + 10000k  

Вы можете захотеть избирательно выбирайте каталоги, которые вы ищете, и следите за любыми удаленно смонтированными дисками, которые могут отключиться.


В предыдущей компании у нас было задание cron, которое запускалось за ночь и определяло любые файлы, превышающие определенный размер, например

  find/-size + 10000k  

Возможно, вы захотите более избирательно подходить к каталогам, которые вы ищете, и следить за любыми удаленно смонтированными дисками, которые могут отключиться.


Я использую

  du -ch --max-depth = 2.  

и я изменяю максимальную глубину в соответствии со своими потребностями. Параметр «c» печатает итоговые значения для папок, а параметр «h» — размеры в K, M или G, в зависимости от ситуации. Как говорили другие, он все еще сканирует все каталоги, но ограничивает вывод таким образом, чтобы мне было легче найти большие каталоги.


Я использую

  du -ch --max-depth = 2.  

и я изменяю максимальную глубину в соответствии со своими потребностями. Параметр «c» печатает итоговые значения для папок, а параметр «h» — размеры в K, M или G, в зависимости от ситуации. Как говорили другие, он все еще сканирует все каталоги, но ограничивает вывод таким образом, чтобы мне было легче найти большие каталоги.


Один из вариантов — запустить вашу команду du/sort как задание cron и вывести ее в файл , поэтому он уже там, когда он вам нужен.


Один из вариантов — запустить вашу команду du/sort как задание cron и вывести ее в файл, так что он уже там, когда он вам нужен.


Для командной строки я думаю, что du/sort метод самый лучший. Если вы не на сервере, вам следует взглянуть на Baobab — Анализатор использования диска. Эта программа также требует некоторого времени для запуска, но вы можете легко найти подкаталог глубоко, глубоко внутри, где находятся все старые ISO-образы Linux.


Я думаю, что для командной строки лучше всего подходит метод du/sort. Если вы не на сервере, вам следует взглянуть на Baobab — Анализатор использования диска. Эта программа также требует некоторого времени для запуска, но вы можете легко найти подкаталог глубоко, глубоко внутри, где находятся все старые ISO-образы Linux.


Я перейду ко второму xdiskusage . Но я собираюсь добавить примечание, что на самом деле это интерфейс du и может читать вывод du из файла. Таким образом, вы можете запустить du -ax/home> ~/home-du на своем сервере, scp вернуть файл, а затем проанализировать его графически. Или пропустите его через ssh.


Я перехожу ко второму xdiskusage . Но я собираюсь добавить примечание, что на самом деле это интерфейс du и может читать вывод du из файла. Таким образом, вы можете запустить du -ax/home> ~/home-du на своем сервере, scp вернуть файл, а затем проанализировать его графически. Или пропустите его через ssh.


Попробуйте передать вывод du в простой сценарий awk, который проверяет, если размер каталога больше некоторого порога, если да, он печатает его. Вам не нужно ждать , пока будет пройдено все дерево, прежде чем вы начнете получать информацию (в отличие от многих других ответов).

Например, ниже показаны все каталоги, которые занимают более 500 МБ.

  du -kx/|  awk '{if ($ 1> 500000) {print $ 0}}'  

Чтобы сделать вышеперечисленное более пригодным для повторного использования, вы можете определить функцию в своем .bashrc (или вы может превратиться в отдельный скрипт).

  dubig () {[-z "$ 1"] && echo "использование: dubig sizethreshMB [dir]" && return du -kx  2 доллара |  awk '{if ($ 1>' $ 1 '* 1024) {print $ 0}}'}  

Итак, dubig 200 ~/ просматривает домашний каталог (без следующих символических ссылок с устройства) для каталогов, которые используют более 200 МБ.


Попробуйте кормить вывод du в простой сценарий awk, который проверяет, превышает ли размер каталога некоторый порог, и если да, то он распечатывает его. Вам не нужно ждать , пока будет пройдено все дерево, прежде чем вы начнете получать информацию (в отличие от многих других ответов).

Например, ниже отображаются все каталоги, которые занимают более 500 МБ.

  du -kx/|  awk '{if ($ 1> 500000) {print $ 0}}'  

Чтобы сделать вышеперечисленное более пригодным для повторного использования, вы можете определить функцию в своем .bashrc (или вы может превратиться в отдельный скрипт).

  dubig () {[-z "$ 1"] && echo "использование: dubig sizethreshMB [dir]" && return du -kx  2 доллара |  awk '{if ($ 1>' $ 1 '* 1024) {print $ 0}}'}  

Итак, dubig 200 ~/ смотрит под домашний каталог (без следующих символических ссылок с устройства) для каталогов, которые используют более 200 МБ.


Здесь не упоминается но вы также должны проверить lsof в случае удаления/зависания файлов. У меня было 5. Удаленный файл tmp размером 9 ГБ из-за сбежавшего cronjob.

https://serverfault.com/questions/207100/how-can-i-find-phantom-storage-usage Помог мне найти владелец процесса указанного файла (cron), а затем я смог перейти к /proc/{cron id}/fd/{file handle #} без файла, о котором идет речь, чтобы получить начало убежать, разрешить это, а затем отобразить «»> файл, чтобы освободить место и позволить cron изящно закрыться.


Здесь не упоминается, но вы также должны проверить lsof в случае удаления/зависания файлов. У меня был удаленный tmp-файл размером 5,9 ГБ из-за сбежавшего cronjob.

https://serverfault.com/questions/207100/how-can-i-find-phantom-storage-usage Мне помогли в поисках владельца процесса указанного файла (cron), а затем я смог перейти к /proc/{cron id}/fd/{file handle #} без файла, о котором идет речь, чтобы получить в начале бега, разрешите это, а затем эхо «»> файл, чтобы освободить место и позволить cron изящно закрыться.


Мне нравится старый добрый xdiskusage как графическая альтернатива du (1).


Мне нравится старый добрый xdiskusage в качестве графической альтернативы du (1).


Я предпочитаю использовать следующее, чтобы получить обзор и развернитесь оттуда …

  cd/folder_to_checkdu -shx */ 

Это отобразит результаты в удобочитаемом формате например ГБ, МБ. Это также предотвратит обход удаленных файловых систем. Параметр -s показывает только сводку по каждой найденной папке, поэтому вы можете развернуть ее дальше, если хотите получить более подробную информацию о папке. Имейте в виду, что это решение будет отображать только папки, поэтому вы захотите опустить/после звездочки, если вам тоже нужны файлы.


Я предпочитаю чтобы использовать следующее, чтобы получить обзор и развернуть оттуда …

  cd/folder_to_checkdu -shx */ 

Это отобразит результаты в формате, удобочитаемом человеком, например в ГБ, МБ. Это также предотвратит обход удаленных файловых систем. Параметр -s показывает только сводку по каждой найденной папке, поэтому вы можете развернуть ее дальше, если хотите получить более подробную информацию о папке. Имейте в виду, что это решение будет отображать только папки, поэтому вы захотите опустить/после звездочки, если вам тоже нужны файлы.


Вы можете использовать стандартные инструменты, такие как find и sort , для анализа использования дискового пространства..

Список каталогов , отсортированных по их размеру:

  find/-mount -type d -exec du -  s "{}" ;  |  sort -n  

Список файлов , отсортированных по размеру:

  find/-mount  -printf "% k  t% p  n" |  sort -n  


Вы можете использовать стандартные инструменты, такие как find и sort для анализа использования дискового пространства.

Список каталогов , отсортированных по их размеру:

  найти/-mount -type d -exec du -s "{}" ;  |  sort -n  

Список файлов , отсортированных по размеру:

  find/-mount  -printf "% k  t% p  n" |  sort -n  

Из терминала вы можете получить визуальное представление об использовании диска с помощью dutree

Это очень быстро и легко, потому что реализовано на Rust

  $ dutree -hUsage: dutree [options]  [ ..] Параметры: -d, --depth [DEPTH] показать каталоги до  глубина N (def 1) -a, --aggr [N [KMG]] агрегат меньше, чем NB/KiB/MiB/GiB (def 1M) -s, --summary эквивалентно -da или -d1 -a1M -u  , --usage сообщает о реальном использовании диска вместо размера файла -b, --bytes печатает размеры в байтах -f, --files-only пропускает каталоги для быстрого локального обзора -x, --exclude NAME исключить совпадающие файлы или каталоги -  H, --no-hidden исключить скрытые файлы -A, --ascii только символы ASCII, без цветов -h, --help показать справку -v, --version номер версии печати  

Просмотреть все подробности использования на веб-сайте

iv>

Из терминала вы можете получить визуальное представление об использовании диска с помощью dutree

Это очень быстро и легко, потому что реализовано в Rust

  $ dutree -hUsage  : dutree [параметры]  [.. ] Параметры: -d, --depth [DEPTH] показать каталоги до глубины N (по умолчанию 1) -a, --aggr [N [KMG]] агрегат меньше NB/KiB/MiB/GiB (по умолчанию 1M) -s  , --summary эквивалентно -da, или -d1 -a1M -u, --usage сообщает о реальном использовании диска вместо размера файла -b, --bytes размеры печати в байтах -f, --files-only пропустить каталоги для  быстрый локальный обзор -x, --exclude NAME исключить совпадающие файлы или каталоги -H, --no-hidden исключить скрытые файлы -A, --ascii только символы ASCII, без цветов -h, --help показать справку -v, -  -version номер версии для печати  

Просмотреть все подробности использования на веб-сайте


Возможно, стоит отметить, что mc (Midnight Commander, классический файловый менеджер в текстовом режиме) по умолчанию показывает только размер inodes каталога (обычно 4096 ), но с помощью Ctrl Пробел или с помощью меню Инструменты вы можете увидеть пространство, занимаемое выбранным каталогом, в удобочитаемом формате (например, некоторые например 103151M ).

Например, на рисунке ниже показан полный размер обычных дистрибутивов TeX Live 2018 и 2017 годов, в то время как версии 2015 и 2016 годов показывают только размер inode (но у них действительно близок к по 5 Гб каждый).

То есть Ctrl Пробел нужно делать один к одному, только для фактического уровня каталога, но это так быстро и удобно, когда вы перемещаетесь с помощью mc , который, возможно, вам не понадобится ncdu (что действительно только для этой цели лучше). В противном случае вы также можете запустить ncdu из mc . без выхода из mc или запуска другого терминала.


Возможно, стоит отметить, что mc (Midnight Commander, классический файловый менеджер в текстовом режиме) по умолчанию показывает только размер inodes каталога (обычно 4096 ), но с помощью Ctrl Space или с помощью меню Tools вы можете увидеть пространство занят выбранным каталогом в удобочитаемом формате (например, в формате 103151M ).

Например, на рисунке ниже показан полный размер обычных дистрибутивов TeX Live 2018 и 2017 годов, в то время как версии 2015 и 2016 годов показывают только размер inode (но у них действительно близок к по 5 Гб каждая).

То есть Ctrl Пробел нужно делать один к одному, только для фактического уровня каталога, но это так быстро и удобно при навигации с помощью mc , который, возможно, вам не понадобится ncdu (что действительно только для этой цели лучше). В противном случае вы также можете запустить ncdu из mc . без выхода из mc или запуска другого терминала.


Я использовал эту команду для поиска файлов размером более 100 МБ:

  find/-size + 100M -exec ls -l {} ;  


У меня есть использовал эту команду для поиска файлов размером более 100 МБ:

  find/-size + 100M -exec ls -l {} ;  

Для командной строки du (и его параметры) кажется лучшим способом. DiskHog выглядит как он также использует информацию du/df из задания cron, поэтому предложение Питера, вероятно, является лучшим сочетанием простого и эффективного.

(FileLight и KDirStat идеально подходят для графического интерфейса.)


Для командной строки du (и его параметры) кажется лучшим способом. DiskHog выглядит как будто он использует информацию du/df из задания cron, поэтому предложение Питера вероятно, лучшая комбинация простого и эффективного.

(FileLight и KDirStat идеально подходят для GUI.)


Сначала я проверяю размер каталогов, например:

  du -sh/var/cache/*/ 


Сначала я проверяю размер каталогов, вот так:

  du -sh/var /cache/*/ 

Если вы знаете, что большие файлы были добавлены в последние несколько дней (скажем, 3), затем вы можете использовать команду find в сочетании с « ls -ltra », чтобы обнаружить эти недавно добавленные файлы:

  find/some/dir -type f -mtime -3 -exec ls -lart {} ;  

Это даст вам только файлы (« -type f «), а не каталоги; только файлы со временем модификации за последние 3 дня (« -mtime -3 «) и выполните « ls -lart » для каждого найденного файла (» -exec «часть).


Если вы знаете, что большие файлы были добавлены в последние несколько дней (скажем, 3), то вы можете использовать команду find в сочетании с « ls -ltra «, чтобы обнаружить эти недавно добавленные файлы:

  find/some/dir -type f -mtime -3 -exec ls -lart {} ;  

Это даст вам только файлы (« -type f «), а не каталоги; только файлы со временем модификации за последние 3 дня (« -mtime -3 «) и выполните « ls -lart » для каждого найденного файла (» -exec «часть).


Чтобы понять непропорциональное использование дискового пространства часто бывает полезно начать с корневого каталога и пройти через некоторые из его самых больших дочерних.

Мы можем сделать это,

  • сохраняя вывод du в файл
  • итеративно просматривая результат

То есть:

  # суммируем размер всех файлов и каталогов в корневой файловой системеdu -a -h -x /> disk_usage.txt # отображаем размер корневых элементов grep $ ' t/[^/] * $' disk_usage.txt  

а теперь скажем /usr слишком большой

  # отображать размер/usr itemsgrep $ ' t/usr/[^/] * $' disk_usage.txt   

теперь, если /usr/local подозрительно большой

  # отображать размер/usr/local itemsgrep  $ ' t/usr/local/[^/] * $' disk_usage.txt  

и так далее …


Чтобы понять непропорциональное использование дискового пространства, часто бывает полезно начать с корневого каталога и пройти через некоторые из его самых больших дочерних директорий.

Мы можем сделать это с помощью

  • сохранение вывода du в файл
  • итеративно просматривая результат

То есть:

  # sum  увеличить размер всех файлов и каталогов в корневой файловой системеdu -a -h -x/> disk_usage.txt # отобразить размер корневых элементовgrep $ ' t/[^/] * $' disk_usage.txt  

теперь предположим, что /usr кажется слишком большим

  # отображать размер/usr itemsgrep $ '  t/usr/[^/] * $ 'disk_usage.txt  

теперь, если /usr/local подозрительно большой

  # отобразить размер/usr/local itemsgrep $ ' t/usr/local/[^/] * $' disk_usage.txt  

и так далее …


Все еще здесь? Или, возможно, за этот ответ проголосовали …

Хотя существуют различные графические инструменты, описанные в других ответах, они мало что делают для решения основной проблемы определения того, как вы можете освободить вверх.

В настоящее время я исследую ту же проблему и наткнулся на ageu, которое сообщает о времени доступа, а также о размере. У меня еще не было возможности поиграть с ним — он написан Саймоном Татхамом (вы, возможно, слышали о PuTTy), поэтому, вероятно, разумный/надежный.

Однако, как и все инструменты, перечисленные здесь , он собирает данные по запросу. Даже самое эффективное кодирование на самом быстром оборудовании потребует времени, чтобы пройти через файловую систему milt-terrabyte.


Все еще здесь? Или, возможно, за этот ответ проголосовали …

Хотя существуют различные графические инструменты, описанные в других ответах, они мало что делают для решения основной проблемы определения того, как вы можете освободить вверх.

В настоящее время я исследую ту же проблему и наткнулся на ageu, которое сообщает о времени доступа, а также о размере. У меня еще не было возможности поиграть с ним — он написан Саймоном Татхамом (вы, возможно, слышали о PuTTy), поэтому, вероятно, разумный/надежный.

Однако, как и все инструменты, перечисленные здесь , он собирает данные по запросу. Даже самое эффективное кодирование на самом быстром оборудовании потребует времени, чтобы пройти через файловую систему milt-terrabyte.


I нам удалось отследить наихудшего (-ых) преступника (-ов), передав вывод du в удобочитаемой форме в egrep и сопоставив его с регулярным выражением.

Например:

  du -h |  egrep "[0-9] + G. * | [5-9] [0-9] [0-9] M. *"  

, который должен вернуть вам все 500 мегабайт или больше.


Мне удалось выследить наихудшего (-ых) преступника (-ов), передавая вывод du в удобочитаемом форма в egrep и соответствие регулярному выражению.

Например:

  du -h |  egrep "[0-9] + G. * | [5-9] [0-9] [0-9] M. *"  

, который должен вернуть вам все 500 мегабайт или больше.


Если вам нужна скорость, вы можете включить квоты для файловых систем, которые вы хотите отслеживать (вам не нужно устанавливать квоты для любого пользователя) и используйте сценарий, который использует команду квоты для перечисления дискового пространства, используемого каждым пользователем. Например:

  quota -v $ user |  файловая система grep $ |  awk '{print $ 2}'  

даст вам использование диска в блоках для конкретного пользователя в конкретной файловой системе. Таким образом вы сможете проверить использование в течение нескольких секунд.

Чтобы включить квоты, вам нужно будет добавить usrquota в параметры файловой системы в вашем файле/etc/fstab, а затем, возможно, перезагрузиться, чтобы quotacheck может быть запущен в неактивной файловой системе до вызова quotaon.


Если вам нужна скорость, вы можете включить квоты для файловых систем, которые вы хотите отслеживать (вам не нужно устанавливать квоты для любого пользователя) и используйте сценарий, который использует команду quota для перечисления дискового пространства, используемого каждым пользователем. Например:

  quota -v $ user |  файловая система grep $ |  awk '{print $ 2}'  

даст вам использование диска в блоках для конкретного пользователя в конкретной файловой системе. Таким образом, вы сможете проверить использование в считанные секунды.

Чтобы включить квоты, вам нужно будет добавить usrquota в параметры файловой системы в вашем файле/etc/fstab, а затем, возможно, перезагрузиться, чтобы quotacheck можно запустить в незанятой файловой системе до вызова quotaon.


Вот крошечное приложение, которое использует глубокую выборка для поиска опухолей на любом диске или в каталоге. Он проходит по дереву каталогов дважды, один раз для его измерения, а второй раз для распечатки путей к 20 «случайным» байтам в каталоге..

  void walk (string sDir, int iPass, int64 & n, int64 & n1, int64 step) {foreach (string sSubDir in sDir) {walk (sDir + "/" + sSubDir  , iPass, n, n1, шаг);  } foreach (строка sFile в sDir) {строка sPath = sDir + "/" + sFile;  int64 len = Размер файла (sPath);  если (iPass == 2) {в то время как (n1  

Для моего каталога Program Files результат выглядит следующим образом:

  7 908 634 694.  ArcSoft  PhotoStudio 2000   Samples  3.jpg.  Common Files  Java  Update  Base Images  j2re1.4.2-b28  core1.zip.  Common Files  Wise Installation Wizard  WISDED53B0BB67C4244AE6AD6FD3C28D1EF_7_0_2_7.MSI.  Insightful  splus62  java  jre  lib  jaws.jar.  Intel  Compiler  Fortran  9.1  em64t  bin  tselect.exe.  Intel  Download  IntelFortranProCompiler91  Compiler  Itanium  Data1.cab.  Intel  MKL  8.0.1  em64t  bin  mkl_lapack32  .dll.  Java  jre1.6.0  bin  client  classes.jsa.  Microsoft SQL Server  90  Setup Bootstrap  sqlsval.dll.  Microsoft Visual Studio  DF98  DOC  TAPI.CHM.  Microsoft Visual Studio.  NET 2003  CompactFrameworkSDK  v1.0.5000  Windows CE  sqlce20sql2ksp1.exe.  Microsoft Visual Studio .NET 2003  SDK  v1.1  Tool Developers Guide  docs  Partition II Metadata.doc.  Microsoft Visual Studio .NET 2003   Visual Studio .NET Enterprise Architect 2003 - английский  Logs  VSMsiLog0A34.txt.  Microsoft Visual Studio 8  Microsoft Visual Stud  io 2005 Professional Edition - ENU  Logs  VSMsiLog1A9E.txt.  Microsoft Visual Studio 8  SmartDevices  SDK  CompactFramework  2.0  v2.0  WindowsCE  wce500  mipsiv  NETCFv2.wce5.mipsiv.cab.  Microsoft Visual Studio 8   VC  ce  atlmfc  lib  armv4i  UafxcW.lib.  Microsoft Visual Studio 8  VC  ce  Dll  mipsii  mfc80ud.pdb.  Movie Maker  MUI  0409  moviemk.chm.  TheCompany  TheProduct   docs  TheProduct User's Guide.pdf.  VNI  CTT6.0  help  StatV1.pdf7 908 634 694  

Он сообщает мне, что размер каталога 7,9 ГБ, из которых

  • ~ 15% идет на компилятор Intel Fortran
  • ~ 15% идет на VS .NET 2003
  • ~ 20% переходит к VS 8

Достаточно просто спросить, можно ли что-нибудь из них выгрузить.

Он также сообщает о типах файлов, которые распределены по файловая система, но вместе взятые представляют собой возможность для экономии места:

  • ~ 15% примерно идет на файлы .cab и .MSI
  • ~ 10% примерно идет на регистрацию текстовых файлов.

Это также показывает множество других вещей, которые t Я, наверное, мог бы обойтись без поддержки «SmartDevices» и «ce» (~ 15%).

Это действительно занимает линейное время, но это не нужно делать часто.

Примеры того, что он обнаружил:

  • резервные копии DLL во многих репозиториях сохраненного кода, которые на самом деле не необходимо сохранить
  • резервную копию чьего-либо жесткого диска на сервере в непонятном каталоге.
  • объемные временные интернет-файлы
  • старые документы и файлы справки, которые давно уже не нужны

Вот крошечное приложение, которое использует глубокую выборку для поиска опухолей на любом диске или в каталоге. Он дважды обходит дерево каталогов: один раз для его измерения, а второй раз для вывода путей к 20 «случайным» байтам в каталоге.

  void walk (string sDir  , int iPass, int64 & n, int64 & n1, int64 step) {foreach (строка sSubDir в sDir) {прогулка (sDir + "/" + sSubDir, iPass, n, n1, step);  } foreach (строка sFile в sDir) {строка sPath = sDir + "/" + sFile;  int64 len = Размер файла (sPath);  если (iPass == 2) {в то время как (n1  

Для моего каталога Program Files результат выглядит следующим образом:

  7 908 634 694.  ArcSoft  PhotoStudio 2000   Samples  3.jpg.  Common Files  Java  Update  Base Images  j2re1.4.2-b28  core1.zip.  Common Files  Wise Installation Wizard  WISDED53B0BB67C4244AE6AD6FD3C28D1EF_7_0_2_7.MSI.  Insightful  splus62  java  jre  lib  jaws.jar.  Intel  Compiler  Fortran  9.1  em64t  bin  tselect.exe.  Intel  Download  IntelFortranProCompiler91  Compiler  Itanium  Data1.cab.  Intel  MKL  8.0.1  em64t  bin  mkl_lapack32  .dll.  Java  jre1.6.0  bin  client  classes.jsa.  Microsoft SQL Server  90  Setup Bootstrap  sqlsval.dll.  Microsoft Visual Studio  DF98  DOC  TAPI.CHM.  Microsoft Visual Studio.  NET 2003  CompactFrameworkSDK  v1.0.5000  Windows CE  sqlce20sql2ksp1.exe.  Microsoft Visual Studio .NET 2003  SDK  v1.1  Tool Developers Guide  docs  Partition II Metadata.doc.  Microsoft Visual Studio .NET 2003   Visual Studio .NET Enterprise Architect 2003 - английский  Logs  VSMsiLog0A34.txt.  Microsoft Visual Studio 8  Microsoft Visual Stud  io 2005 Professional Edition - ENU  Logs  VSMsiLog1A9E.txt.  Microsoft Visual Studio 8  SmartDevices  SDK  CompactFramework  2.0  v2.0  WindowsCE  wce500  mipsiv  NETCFv2.wce5.mipsiv.cab.  Microsoft Visual Studio 8   VC  ce  atlmfc  lib  armv4i  UafxcW.lib.  Microsoft Visual Studio 8  VC  ce  Dll  mipsii  mfc80ud.pdb.  Movie Maker  MUI  0409  moviemk.chm.  TheCompany  TheProduct   docs  TheProduct User's Guide.pdf.  VNI  CTT6.0  help  StatV1.pdf7 908 634 694  

Он сообщает мне, что размер каталога 7,9 ГБ, из которых

  • ~ 15% идет на компилятор Intel Fortran
  • ~ 15% идет на VS .NET 2003
  • ~ 20% переходит к VS 8

Достаточно просто спросить, можно ли что-нибудь из них выгрузить.

Он также сообщает о типах файлов, которые распределены по файловой системе, но вместе взятые представляют возможность для экономии места:

  • ~ 15% примерно идет в файлы .cab и .MSI
  • ~ 10% примерно идет на регистрацию текстовых файлов

Там также показано множество других вещей, я, вероятно, мог бы обойтись без поддержки «SmartDevices» и «ce» (~ 15%).

Это действительно занимает линейное время, но это не нужно делать часто.

Примеры того, что он обнаружил:

  • резервные копии DLL во многих репозиториях сохраненного кода, которые на самом деле не необходимо сохранить
  • резервную копию чьего-либо жесткого диска на сервере в непонятном каталоге.
  • объемные временные интернет-файлы
  • древние файлы документации и справки, которые давно уже не нужны

У меня была аналогичная проблема, но ответов на этой странице было недостаточно. Я считаю, что следующая команда наиболее полезна для листинга:

du -a/| sort -n -r | head -n 20

Это покажет мне 20 самых серьезных преступников. Однако, хотя я запустил это, он не показал мне реальной проблемы, потому что я уже удалил файл. Загвоздка заключалась в том, что все еще работал процесс, который ссылался на удаленный файл журнала … поэтому мне пришлось сначала убить этот процесс, после чего дисковое пространство оказалось свободным.


У меня была аналогичная проблема, но ответов на этой странице было недостаточно. Я считаю, что следующая команда наиболее полезна для листинга:

du -a/| sort -n -r | head -n 20

Это покажет мне 20 самых серьезных преступников. Однако, хотя я запустил это, он не показал мне реальной проблемы, потому что я уже удалил файл. Загвоздка заключалась в том, что все еще работал процесс, который ссылался на удаленный файл журнала … поэтому мне пришлось сначала убить этот процесс, после чего дисковое пространство оказалось свободным.


Вы можете использовать DiskReport.net для создания онлайн-отчета по всем вашим дискам.

При многих запусках он покажет вам график истории для всех ваших папок, легко найти, что выросло


Вы можете использовать DiskReport.net для создания онлайн-отчет обо всех ваших дисках.

При многократном запуске он покажет вам график истории для всех ваших папок, легко найти, что выросло

Оцените статью
techsly.ru
Добавить комментарий