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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать

GREP - показываем только ближайшее символы от найденного совпадения

Ноябрь 28, 2018 г.

По умолчанию GREP выводит всю строку, где был обнаружен указанный вами шаблон поиска. Для форматированных текстовых файлов это подходит. Но если в поиск попадает минифицированный текстовый или binary файл, то в консоль вываливается неприлично много текста. ...

Читать

 

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

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



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