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

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

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

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

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

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

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

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

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

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

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

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

Скрипт слежения за изменениями в less файлах

Декабрь 2, 2018 г.

Lessc не имеет ключа 'слежения', чтобы выполнять перекомпиляцию при изменении less файлов проекта, как например это сделано у sass компилятора. Это весьма не удобно на этапе верстки шаблона из макета. Для отслеживания я установил UNIX утилиту inotify. ...

Читать

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

Ноябрь 28, 2018 г.

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

Читать

Копируем файлы с AWS S3

Сентябрь 26, 2019 г.

На AWS файлы копятся в течении жизни проекта, а для разработки иногда удобнее иметь их локально. Как перетащить их из облака (и закинуть потом обратно), пользуясь консолью, расскажу в статье. Направление операции копирования в данном случае не ...

Читать

Кросс доменные заголовки в настройках Varnish

Апрель 18, 2019 г.

Пример конфигурации для Varnish, если вы решили отдавать им CORS headers, чтобы разрешить кросс-доменные запросы. Запросы бывают простые и сложные с точки зрения спецификации CORS, где: простые запросы - это GET, POST, HEAD с заголовками из ...

Читать
 

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

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



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