Я использую сервер Linux, мы используем этот сервер как общий диск samba. Со вчерашнего дня внезапно увеличился размер одного из общих дисков (~ 100 МБ каждые десять минут). На этом общем диске слишком много папок и подпапок. Теперь на общем диске не хватает места.
Пожалуйста, помогите мне найти, какая папка увеличивается. Я пробовал команду ниже, чтобы получить размер подкаталогов общего диска. Но мне нужно сравнить результат, и это займет слишком много времени, чтобы понять, не повезло ли мне.
du -sh --maxdepth=1
Не могли бы вы посоветовать мне, есть ли другой способ найти транзакцию данных в этой файловой системе?
Можешь попробовать iotop
инструмент, который показывает использование операций ввода-вывода процессами (другими словами, какие основные процессы используют ваш диск), чтобы вы могли отслеживать, какой процесс отвечает за использование пространства. Другой способ - использовать inotify
(часть inotify-tools
), который может отслеживать изменения в каталогах.
Или простой способ - использовать du
следующим образом.
Определите следующие псевдонимы:
alias big='du -ah . | sort -rh | head -20'
alias big-files='ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20'
Затем зайдите в какую-нибудь подозрительную папку и запустите big
чтобы показать вам самые большие файлы и каталоги в текущем каталоге. Или беги big-files
для рекурсивного просмотра самых больших файлов в текущей папке.
Примечание: для правильной работы с OSX / BSD (как
sort
не имеет-h
), установитьsort
изcoreutils
или удалить-h
изls
и использоватьsort -nr
вместо.
Найдите недавно измененные файлы, используя команду ниже. Он покажет файлы, измененные за последние десять минут, внутри FOLDER. Увеличьте параметр -mmin -10, чтобы увидеть, как ПАПКА изменялась с течением времени. Видеть найти человека и ищи -mtime и -ммин для полной информации:
sudo find FOLDER -xdev -type f -mmin -10 -ls
Другая ситуация, когда удаленные файлы все еще занимают дисковое пространство, которое не восстанавливается из-за процессов, все еще использующих их. В этом случае определите процессы, использующие удаленные файлы, и завершите их, чтобы пространство было восстановлено:
sudo lsof | grep deleted
Поиск размера здесь не поможет, так как многие маленькие файлы могут занимать столько же или больше места, чем большой файл. Также проверьте номера inode. Кроме того, чтобы получить размер всех папок внутри FOLDER:
sudo find FOLDER -xdev -type d | xargs -I DIR du -sm DIR | sort -nk1
Я обычно использую ncdu
Чтобы изучить использование дискового пространства, если ваша постоянно увеличивающаяся папка не блокирует вашу систему или сканирование ncdu, вы сможете найти, посмотрев, какие папки выглядят нормально большими.