我应该将共享数据存储在文件系统的哪里?

我应该将共享数据存储在文件系统的哪里?

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

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

对于备份,我倾向于使用 /var/backups,但由于有多个 cronjobs 向其写入数据,因此它真的应该留给他们使用吗?

答案1

这个问题似乎有一个明确的答案文件系统层次标准,指定/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“应作为此类数据的默认位置”,但标准为您自己的偏好留有一定的空间,具体取决于您如何解释这些术语。

答案2

  • 非用户特定数据可以存储在在 /usr/本地/var这样它就不会再次出现在网络共享中。
  • 任何不在 ../local/.. 下的内容都可以最终放在 nfs 共享上,因此如果您想从 nfs 共享下载数据,请确保它们本地存储在机器硬盘上。
  • 然后您应该选择一个包含.../local/..的路径....其余的取决于数据的性质和类型。它可以是/local/var 或/local/tmp 等。

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

另请查看此

答案3

我认为 FHS 没有为共享用户数据定义任何位置。用户可自行决定将共享数据存储在何处。我通常使用/usr/local/shared/home/shared

答案4

我曾经见过/export使用 nfs 提供服务,并/mnt在公司环境中本地挂载 nfs 共享,正如 NFS 文档中所建议的那样,我怀疑该标准最初来自 Sun OS,后来更名为 Solaris。

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

这已经非常接近“标准”了。请注意,/export不在 FHS 中,因此/export是独立添加的,所以大概没人对 感到满意/srv。可能是因为可能会与作为守护进程运行的“服务”而不是“服务”卷混淆。/export名称明确,几乎不会造成混淆。我从未在 中看到任何东西/srv

相关内容