我想创建一个系统范围的目录,其中包含特定于应用程序的(读写)数据(如日志文件、配置和其他特定于应用程序的元数据)。
在阅读了更多关于 Linux 文件系统的内容后,我考虑使用/var/app_name/
,但后来我发现,一些子目录是临时的(在重新启动时不是持久的,例如run
, log
, tmp
)。
这有多重要?我的意思是,我应该使用另一个目录(如/home/app_name/
)还是使用/var/app_name/
可以?
应用程序通常不得将目录添加到 /var 的顶层。仅当此类目录具有某些系统范围的影响时才应添加,并与 FHS 邮件列表协商。
您应该使用它/etc/app_name/
来存储程序的配置文件和其他内容,并/var/log/app_name/
存储其日志文件。
对于应用程序使用的数据,您可以存储:
/var/lib/app_name/
持久数据和元数据中/var/cache/app_name/
可以安全删除的任何应用程序缓存中/var/spool/app_name/
等待处理的数据中绝对不要使用 /home/app_name/
保留给用户app_name的 homedir 的。如果你的程序需要创建一个特定的用户来运行,那就是它的位置。
关于您在评论中的问题:Linux 不会自动删除您放入/var/log/
. 事实上,系统管理员经常会遇到相反的问题,即日志填满所有空间……所以由您来删除或轮换日志文件;这是通过logrotate
或自定义 cron 作业完成的。