Удаление большого числа файлов в UNIX

Столкнулся недавно с такой проблемой — не смог файловым менеджером даже просто открыть папку с временными файлами на своём веб-сервере под UNIX. Размер, папки, т.е. сам список файлов оказался объемом в 85 мегабайт. Сколько там файлов, я даже не представляю.

Поняв, что файловым менеджером туда даже не стоит и соваться, я перешел в командную строку, зашел в /tmp и попробовал запросить список файлов:

UNIX призадумался секунд на 20, но все же выдавил из себя этот мега-список. Так я по крайней мере убедился, что проблема именно в количестве файлов, в не в чем либо ещё. Каталог оказался забит файлами сессий веб-сервера, которые не чистились несколько лет. Так как все они начинались с префикса «sess_», я попытался их удалить, пользуясь маской:

На что UNIX сообщил:

Так сразу весь список не удалить. На помощь пришла команда find c ключем —exec.

Т.е. мы поискали в папке /tmp файлы сессий и для каждого из них выполнили команду удаления.

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

Пока ждал удаления, наваял скрипт на PHP, как «PLAN B».

Он перебирает файлы в /tmp и удаляет начинающиеся на «sess_», но с учетом времени последней модификации файла. Т.е. это сборщик мусора, удаляющий файлы сессий.

Надо будет разобраться со сборкой мусора на веб-сервере, т.к. наверняка можно обойтись без экзотики команд UNIX и скриптов на PHP для сборки мусора.

Мало букафф? Читайте есчо !

Скрипт для рекурсивной распаковки

Сентябрь 18, 2025 г.

Столкнулся с задачей на практике - в архиве tar.gz лежит еще один архив, в котором еще один и так далее... Как с кощеевым яйцом, только цепочка в матрешке куда более длинная. Написал небольшой скрипт для bash, по распаковке такого сюрприза. ...

Читать

Развертывание бекапов mySQL из консоли unix

Февраль 6, 2018 г.

Как развернуть дамп базы данных mySQL, созданный ранее? Дамп представляет из себя mysql скрипт, в котором последовательно создаются таблицы (CREATE TABLE ...) и, возможно, другие объекты и производиться их наполнение (INSERT INTO ...). Нужно лишь отправить ...

Читать

Установка Lets' encrypt SSL сертификата на Debian

Июль 24, 2017 г.

Если вы решили сэкономить и получить бесплатный SSL сертификат, то в большинстве случаев сделать это не сложно. Благодаря проекту Lets' encrypt процесс получения и настойки автоматизирован и выполняется буквально 2-3 командами в консоли сервера. ...

Читать

Проблемы при установке therubyracer

Сентябрь 9, 2018 г.

Если после команды [crayon-694f9fa69a62a840565334/] Вы видите что то вроде: [crayon-694f9fa69a632507682743/] Возможно вам поможет следующий алгоритм установки. therubyracer потребовался мне для работы lessc, потому я стал искать решение, как ...

Читать
 

Комментарии к «Удаление большого числа файлов в UNIX»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: