繁体   English   中英

创建一个缓存文件,当libc(所有文件系统)或ext4中的分区几乎已满时,该文件会自动删除?

[英]Create a cache file which is automatically deleted when partition is nearly full in libc (all file systems) or ext4?

在编写需要在磁盘上缓存数据的软件时,libc中是否存在某种方式,或某种特定于某个文件系统(如ext4)的方式,以创建文件并将其标记为适合自动删除(通过内核)如果分区几乎满了?

对于内存页面有类似的东西: madvise(…, MADV_FREE)

一些系统通过编写监视分区充满度的守护进程来实现此目的,并且一旦超过某个填充级别就手动删除某些预定路径。 我想尽可能避免这种情况,因为它不是很可扩展:每个应用程序都必须在创建新缓存路径时通知守护进程,这可能经常发生。 如果这是在内核中,则可以在每个inode上保留一个标志,指示它是否是缓存文件。

拥有标准化的守护进程也是可以接受的。 目前看起来不同的主要系统集成商都发明了他们自己的。

您可以使用crontab作业,并查找特定的文件扩展名并将其删除。 您甚至可以根据时间进行过滤,并保留最近n分钟内创建的文件。 如果您对此感到满意,请告诉我,我将在此处添加更多详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM