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

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

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

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

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

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

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

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

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

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

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

Написать комментарий

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

Диагностика varnish, полезные команды

Май 30, 2018 г.

Занимался пару дней перетряхиванием конфигурации varnish на веб-сервере, решил запротоколировать некоторые моменты, если вдруг понадобится на будущее. ...

Читать

Создание архива без сохранения абсолютного пути в UNIX

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

Если вы укажите полный путь архивируемой папки в UNIX, то файлы будут размещены в архиве вместе полным путем. Не всегда это удобно и правильно, зависит от выполняемой задачи. Как отсечь абсолютные пути, оставив только относительные? Для этого ...

Читать

 

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

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



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