我应该在文件系统中的哪个位置存储共享数据?


44

在UNIX文件系统中,保存非用户特定数据(例如通过nfs或ftp共享的数据或备份)的常规位置在哪里?

我显然可以创建和使用任意文件夹(例如/ home / shared,/ data或/ var / data),但是我真的很想知道是否有任何“最佳”或“通用”实践准则。该文件系统层次标准未指定共享数据的位置。

对于备份,我倾向于使用/ var / backups,但是随着多个cronjobs对其进行写操作,它是否应该真正留给他们使用?

Answers:


29

这个问题在Filesystem Hierarchy Standard文件系统层次结构标准)似乎确实有明确的答案,该标准指定/srv“包含由该系统提供服务的特定于站点的数据”。(3.16.1)

指定此参数的主要目的是使用户可以找到特定服务数据文件的位置,并使需要一棵树的只读数据,可写数据和脚本的服务。

(我的重点)

注意:“由系统提供服务”不一定是指Internet。它甚至不需要网络。它甚至适用于共享系统。此外,“ 站点服务 ”一词应以其互联网前的含义来理解。您的站点可以是“物理部门”或“财务办公室”。

它继续说:

在大型系统上,通过管理上下文来构造/ srv很有用,例如/ srv / physics / www,/ srv / compsci / cvs等。此设置因主机而异。因此,任何程序都不应依赖现有的/ srv的特定子目录结构或必须存储在/ srv中的数据。但是/ srv应该始终存在于符合FHS的系统上,并应被用作此类数据的默认位置。

因此,应进一步结构的目录,例如您的数据/srv/nfs/srv/backup等等。

我还应该提到很少有人这样做。但是,没有理由不这样做。该标准绝不是过时的。

/var传统上用于打印假脱机和日志文件之类的东西,但是Apache Web服务器也使用它(无论如何在Debian系统上-SUSE使用/ srv);/var对于共享数据的正确目录,似乎还没有达成共识。但是,如果您决定改用它,我相信您不会后悔。

另请注意:Karthick的回答绝不是错误的。FHS表示/ srv“应该用作此类数据的默认位置”,但是标准为您自己的偏好留出了一定的空间,具体取决于您对术语的解释方式。


4
请注意/var/www,在/srv/成为FHS的一部分之前,Debian(和Red Hat)开始将Apache的文件放入中。
mattdm 2010年

很好的解释,谢谢,尽管问题的答案似乎是“实际上并没有真正遵循的标准”。也许应该存在,也许真的没有关系。
misterben

好吧,只要有充分的理由,就应该总是违反规则。但是我估计在许多大规模部署中都会严格遵循此标准。
Stefano Palazzo

希望采用通用标准的人们应该根据FHS明确找到这个答案。
杰里米(Jeremy)

13
  • 非用户特定的数据可以存储在/ usr / local / var中,这样就不会再次出现在newtwork共享上。
  • 不在../local/ ..下的任何内容都可以以nfs共享结尾,因此,如果要从nfs共享下载数据,请确保将其存储在本地计算机硬盘上。
  • 然后你应该选择一个路径,其中有... / local / .....其余的取决于数据的性质和类型,可能是/ local / var或/ local / tmp等。

文件系统层次结构:
替代文字

也看看这个


1
尽管这是FHS的有用表示,但仍然没有建议共享数据存储的标准位置。
misterben 2010年

FSH指出:/ usr是可共享的只读数据。这意味着/ usr应该在各种符合FHS的主机之间共享,并且 不能写入。嗯,所以这似乎取决于您分享的目的。
htorque 2010年

@htorque我倾向于在/ var下的某个位置最适合文件共享,正如您在(现已删除)答案中所建议的那样。
misterben

1
我删除了我的答案,因为FHS还指出:应用程序通常不能将目录添加到/ var的顶层。此类目录仅在对系统有一定影响时才添加,并与FHS邮件列表进行协商。-FHS根本不希望您共享(可写)数据!:P
htorque 2010年

谢谢,提供了有用的概述,并且像其他答案一样,它确实可以证明没有明确的答案,这本身就很有帮助。
misterben 2010年

5

我认为FHS不会为共享用户数据定义任何位置。由用户决定在哪里存储共享数据。我通常使用/usr/local/shared/home/shared


1

我曾见过/export曾经与nfs一起使用,并/mnt曾经在公司环境中按照NFS文档中的建议在本地安装nfs共享,我怀疑该标准最初来自Sun OS,后来更名为Solaris。

/etc/exports文件命名了导出的卷,该/exports目录将它们提供给远程用户,然后将它们安装在上/mnt。服务器主机还可以/mnt使用相同的nfs守护程序在服务器上本地运行的任何客户端或进程上安装这些相同的共享,以保持与任何远程主机的兼容性,并可能保留负载均衡,配额等功能。

这与它所接近的“标准”差不多。请注意,/export因此未在FHS /export中单独添加,因此大概没人满意/srv。可能是由于与作为守护程序而不是“服务”卷运行的“服务”的潜在混淆。/export被明确命名,几乎没有混淆的可能性。我什么也没看到/srv

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.