Linux 上跨主目录和关系数据库(MySQL、PostgreSQL)的单一磁盘空间配额

Linux 上跨主目录和关系数据库(MySQL、PostgreSQL)的单一磁盘空间配额

关系数据库通常将数据放在 /var/lib/something 中。用户位于 /home 中(数据位于 /var/www 中)。如何在所有这些独立软件系统(文件系统、RDBMS 等)中应用单个总磁盘空间配额?

PS 我周围正在打赌 SU 到底有多棒。让我们看看你有什么好东西。

答案1

您可以将每个用户的数据库文件移动到他们的主目录中,这样它们将计入那里监控的任何配额。如果/var/home或在同一文件系统上,您可以使用硬链接执行此操作,因此甚至不需要暂停 msySQL,否则将文件移动到主目录并将它们符号链接回“/var/lib/whatever”。

对于可通过网络访问的内容,我倾向于将每个用户的站点配置为他们的主目录中(通常在名为的目录中/home/<user>/public_html(有些人喜欢使用指向该目录的符号链接/home/<user>/www)。这样,文件就和他们的主目录的其余部分位于同一位置,所以没有额外的位置需要计算。

根据配额的计算方式,文件所有权可能是一个问题。例如,如果您运行 Web 服务器,使所有内容都以一个用户的身份运行(用户nobodywww-data是共同的),则由 Web 访问脚本创建的任何文件都不会归该用户所有,因此,如果这阻止它们被计入其配额,那么您的计数中就会缺少一些内容。我让每个用户的脚本以自己的身份运行(通过 suPHP 或 PHP 的 phpSUexc),因此最终所有东西的所有权都是正确的,这意味着这对于 Web 可访问脚本及其在文件系统中创建的任何输出都不是问题。

相关内容