Альтернатива порогу du

Возможно, вы можете попробовать повторно установить -с помощью sudo apt-get remove python, а затем установить с помощью sudo apt-get install python. Можете ли вы также сказать мне, какую версию Python вы используете? Если это не сработает, вы можете установить linuxbrew и установить python3.7 или python2.

1
03.07.2020, 22:39
2 ответа

--threshold — это команда, доступная в :

.
  • Убунту 18.04/20.4
  • Debian jessie 8/stretch 9 buster 10
  • Центос 7

Большая командная строка:

(
  THRESHOLD='200M' 
  PATTERN='==========---------========----'
  ( 
    sudo find / -type d -print0 2>/dev/null | \
         sudo xargs -0 -P4 -- du -sh  2>/dev/null ;
    echo "${THRESHOLD} ${PATTERN}" 
  ) | sort -h | sed "0,/${PATTERN}/ d"
)

Комментарии :-print0разделитель между двумя файлами \0помогите, если в имени папки есть пробел

-0скажите xargs читать поток, у которого есть разделитель\0

-P4указать, что нужно работать со степенью параллелизма 4

0,/REGEX/ dсказать sedудалить строки между первой и строкой, которые соответствуют REGEX

пс:

Недоступно в Centos 6

0
18.03.2021, 23:22

Как упоминал #EchoMike444, параметр --thresholdдоступен для команды duв CentOS 7, но не в CentOS 6 и более ранних версиях. Из-за отсутствия у меня репутации,Я не могу комментировать его решение, но я хотел сказать, что оно работает очень хорошо. Я не очень хорошо понимаю команду sed, поэтому вот несколько альтернативных команд, которые могут помочь вам в ваших поисках.

Опубликованная вами команда будет суммировать только каталог /var/log/, но не будет включать какие-либо подкаталоги -.

# du -sh /var/log/ --threshold=5G

Если вы используете CentOS 7, следующая команда отобразит использование дискового пространства для всех каталогов в дереве каталогов /var/log/ размером 5G или больше.

# find /var/log/* -type d | xargs du -h --threshold=5G | sort -hr

Я не совсем уверен, как вы планируете это использовать, но вот кое-что, что может вам подойти. Хотя следующая команда не даст вам именно то, что вы ищете, она определит 10 самых больших подкаталогов -в каталоге /var/log/. Все, что сортируется выше вывода команды echo, будет тем, что вы ищете.

# (find /var/log/* -type d -exec du -sh {} \; ; echo "5G ####################") | sort -hr | head

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

# find /var/log/* -type d -exec du -sh {} \; | sort -hr | head

Если вы ищете файлы размером 5G или больше, следующая команда даст вам эти результаты.

# find /var/log/ -size +5G -exec ls -l {} \; | sort -nr -k5

0
18.03.2021, 23:22

Теги

Похожие вопросы