编辑以添加正确的 ESXi 版本
我遇到了一个非常奇怪的问题,让我感觉自己像个白痴,尽管我确信它有一些简单的解释,我希望你们中的一个好人能够指出我的方向。
我们正在运行 Linux 服务器 Centos 7.9.2009,并进行了所有最新更新,作为虚拟机上的 LAMP 服务器,启用了负载平衡。 VSphere、ESXi 6.5.0。服务器被很好地锁定,并且位于商业级防火墙后面。服务器非常高端。我和我的队友使用虚拟 Linux 机器来测试开发单个代码项目和快速脚本。我们通过 SSH 从防火墙内部连接以更新文件进行测试。一般使用winSCP上传文件。我们将重要项目的备份保存在单独服务器上的版本控制工具中。
这个问题的主要要点是,在过去 3 年里,我和我的队友已经有 5 次用以前的版本在服务器上似乎自发地替换了单个文件或目录。即使是最后更新/修改日期也会连同所有权限等一起恢复。
在每种情况下,已经到位的代码突然一夜之间就消失了,并被旧版本的文件所取代。在某些情况下,整个目录(排除子目录)被替换为其中文件的旧版本。据我所知,这不是最终用户覆盖的情况,因为所有修改日期也都被恢复。
相关文件在内存中处于活动状态的代码仍然运行良好并且仍然是最新的,重新启动它当然会导致加载先前的版本并抛出错误。
最新的事件是我昨天结束的时候(1/10星期一)写完的perl代码,保存下来,并在下午5点到6点之间测试成功。然而今天早上,代码、修改日期和所有内容都显示 1/3(上周一)作为最新修改日期。日志和其他文件仍然显示1/10,数据库和日志有新版本中才有的数据。
当检查夜间完整服务器备份(昨晚 12 点到凌晨 1 点之间运行,1/10-1/11)时,相关文件的修改日期为 1/7(星期五),日志和子目录显示 1/10。这意味着备份显示的文件比替换最新文件的文件新 4 天,但没有保存前一天晚上的最新更改。这意味着回滚必须在昨晚的夜间备份之前但在我上次保存的更改之后发生。
发生这种情况时,我通常可以从版本控制中恢复我的工作,这只是测试代码,但我更关心的是这到底是如何发生的?
一些背景......我们每晚在测试服务器上进行服务器级备份。完整备份,包括环境其余部分的文件级别。我不认为这个问题可能是由于从备份恢复造成的,因为只有有问题的目录被恢复,但该目录中的子目录仍然是最新的,甚至有昨晚测试的日志,服务器上没有我们认为的其他文件可以识别已被覆盖,我们只能通过安装为虚拟设备或进行完整恢复来提取文件。此外,已知没有运行任何恢复,备份管理器显示没有恢复,并且系统管理员确认在任何情况下都没有运行恢复,并且如上所述,其他文件和子目录仍然具有正确的修改日期和日志。
所以,我很困惑,并欢迎任何人提出任何建议,无论是人为错误,还是一些奇怪的自动恢复或其他什么。如果我现在没有看到这种情况发生 5 次,三年后我会确信自己疯了,但现在我已经看到了,我的队友也看到了,系统管理员能够使用备份来验证它。
谢谢大家,如果我未能提供任何有用的详细信息或可以澄清任何内容,请告诉我。