Создать файл кэша, который автоматически удаляется, когда раздел почти заполнен в libc (все файловые системы) или ext4?

При написании программного обеспечения, которое должно кэшировать данные на диске, есть ли в libc какой-либо способ, специфичный для определенной файловой системы (например, ext4), создать файл и пометить его как подходящий для автоматического удаления (с помощью ядро) если раздел становится почти полным?

Есть что-то похожее для страниц памяти: madvise(…, MADV_FREE),

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

Также было бы приемлемо иметь стандартизированный демон для этого. На данный момент кажется, что разные крупные системные интеграторы изобретают свои собственные.

1 ответ

Вы можете использовать задание crontab, найти конкретное расширение файла и удалить его. Вы даже можете фильтровать по времени и оставлять файлы, созданные за последние n минут. Если вы согласны с этим, дайте мне знать, я добавлю более подробную информацию здесь.

Другие вопросы по тегам