我为我们的服务器迁移到 Amazon EC2 的迁移策略的一部分涉及使用符号链接将安装和文件保存在服务器上的“标准”位置,但将日志文件、数据等实际存储在 EBS 存储上,以实现持久性. 服务器启动后,我运行脚本来创建指向存储在 EBS 上的配置文件和数据的符号链接,以将服务器“转换”为我需要的设置。
由于我不是真正的 Linux 系统管理员(小公司开发人员),我对使用符号链接可能不知道的任何类型的陷阱感到紧张。诸如破坏软件包或应用程序可能不喜欢使用符号链接的其他困难之类的事情是我所关心的。
是否有任何使用符号链接的常见陷阱,或者它们非常万无一失?
如果您只是软符号链接目录 - 而不是文件 - 那么它们在大多数情况下应该完全透明。
您可能会偶然发现的唯一问题是某些应用程序会解析然后继续引用链接的真实路径。如果您选择在稍后阶段更改链接的来源,这可能会导致问题。
是的,远离“硬”链接,因为你很容易用它们制造混乱。硬符号链接只是文件系统不同部分中同一文件的“重新出现”,即它实际上在文件系统的目录结构中创建了第二个条目,并直接链接到文件数据。它们有其用途,但一般来说,您最好使用“软”符号链接,它类似于 Windows 快捷方式(尽管在实现上大不相同),因为它们只是指向原始文件的指针。这些是你最好的选择。
删除软符号链接会删除该链接。如果您不小心,删除硬符号链接可能会删除文件。
正如有人指出的那样,硬链接在文件系统中创建第二个条目。您只能在同一个分区和文件上使用它,而不是目录。如果您删除文件的所有硬链接,则该文件会被删除。
软链接,即符号链接,只需在目录中创建一个条目,让您可以轻松查看一个方向,即存储真实文件的位置。
你没有得到的是在另一端有多个符号链接指向一个文件的任何知识。如果您移动或删除文件,所有符号链接都会中断。
适度使用,符号链接很好。如果您发现一个符号链接指向一个符号链接,该符号链接在到达真实文件之前又指向另一个符号链接,那么您应该仔细考虑。那么你可能做错了什么......