Большинство системных администраторов время от времени сталкиваются с проблемой нехватки дискового пространства. Некоторые сталкиваются с ней регулярно. Когда на диске мало места, приложения работают плохо, а иногда и вовсе перестают работать. В таких случаях рекомендуется искать большие файлы в системе и удалять их, если они ненужные, старые или устаревшие. В этой статье мы узнаем, как найти файлы размером более 100 Мб в Linux.
Как найти файлы размером более 100 Мб в Linux
Ниже описаны шаги по поиску больших файлов в Linux. Для этого мы будем использовать команду find.
Поиск больших файлов в Linux
Вот команда find для поиска больших файлов в Linux.
1 | find [расположение] -type f -size <размер> |
В приведенной выше команде мы указываем местоположение для поиска файлов после команды find. Мы используем опцию -type, чтобы указать, что мы хотим найти только файлы, а не каталоги. Далее мы используем опцию -size, чтобы указать размер файла. Вы можете задать размер файла в Кб, Мб и Гб, используя суффиксы K, M или G.
Вот пример команды для поиска файлов размером более 100 Мб.
1 | $ find / -type f -size +100M |
Вот команда для поиска файлов размером более 1 Гб.
1 | $ find / -type f -size +1G |
Поиск файлов по размеру и расширению
Как правило, файлы журналов быстро разрастаются до больших размеров и приводят к переполнению диска. Вы можете использовать описанный выше подход для поиска и удаления больших файлов журнала, которые не нужны. Вот пример поиска файлов журнала размером более 100 Мб.
1 | find / -type f -name "*.log" -size +100M |
Приведенная выше команда выполнит поиск всех файлов журналов в вашей системе. Например, если ваши файлы журнала расположены в определенном каталоге, таком как /etc/nginx/log, вы можете дать команду find для поиска файла в этом месте.
1 | find /etc/nginx/log -type f -name "*.log" -size +100M |
Автоматический поиск больших файлов
Если вы хотите регулярно контролировать систему на наличие больших файлов, вы можете настроить cronjob для автоматического выполнения вышеуказанной команды find в вашей системе. Например, выполните следующую команду, чтобы открыть crontab.
1 | crontab -e |
Добавьте следующую строку в crontab. Она будет выполняться каждый день в 10.a.m и сохранять результат в файле /home/ubuntu/large-files.txt.
1 | 0 10 * * * find / -type f -size +100M >/home/user/large-files.txt |
Поиск и удаление файлов
Если вы хотите найти и удалить файлы, вы можете использовать '-exec rm -rf {} \' в конце команды find.
1 | find / -type f -size +100M -exec rm -rf {} \ |
ИЛИ
1 | find /etc/nginx/log -type f -name "*.log" -size +100M -exec rm -rf {} \ |
Заключение
В этой статье мы узнали, как находить большие файлы в Linux. Вы можете запускать эти команды из терминала, через сценарий оболочки или с помощью заданий cron.