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

unix文件系统中的哪个位置是保存非用户特定数据的常规位置,例如通过nfs或ftp共享的数据,还是备份?

我显然可以创建和使用任意文件夹(例如/ home / shared,/ data或/ var / data),但我真的想知道是否有任何“最佳”或“常见”练习指南。 Filesystem Hierarchy Standard不指定共享数据的位置。

对于备份,我倾向于使用/ var / backups,但是如果有几个cronjobs写入它应该真的留给他们使用吗?

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

指定此目的的主要目的是使用户可以找到特定服务数据文件的位置,以便需要单个树的服务用于只读数据,可写数据和脚本

(我的重点)

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

它继续说:

在大型系统上,通过管理上下文构造/ 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“应该用作此类数据的默认位置”,但标准会为您自己的偏好留出一些空间,具体取决于您对术语的解释。

  • 非用户特定数据可以存储在/ usr / local / var中,这样它就不会再次出现在newtwork共享上。
  • 任何不在../local/ ..下的东西都允许以nfs共享结束,所以如果你想从nfs共享下载数据,并确保它们本地存储在机器硬盘上。
  • 然后你应该选择一个带有… / local / ..的路径….其余的取决于数据的性质,它的类型。它可以是/ local / var或/ local / tmp等。

文件系统层次:
替代文字

还看看这个

我不认为FHS定义了共享用户数据的任何位置。 用户希望在那里存储共享数据。 我通常使用/usr/local/shared/home/shared

我已经看到/export用于服务nfs,而/mnt用于在企业环境中本地挂载nfs共享,如NFS文档中所建议的那样,我怀疑这个标准最初来自Sun OS,后来改名为Solaris。

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

这就像接近“标准”一样。 请注意/export不在FHS中,因此/export是独立添加的,因此大概没有人对/srv感到满意。 可能是因为可能会混淆“服务”作为守护进程运行而不是“服务”卷。 /export被明确命名,几乎没有混淆的可能性。 我从未在/srv看到过任何内容。