我正在使用 Windows Server 2012 R2。现在我有以下情况:-
- 在 IIS 内部,我有一个名为 project.dll 的 .dll 文件。创建于 2016 年 1 月 1 日,最后修改于 2016 年 1 月 7 日。
- 我复制了此文件。请将其保存在安全的地方
- 现在我想测试这个.dll 文件的新版本。因此我将 project.dll 文件的更新版本从我们的测试服务器复制/粘贴到我们的上线前服务器。我在其中指定替换当前的.dll。
- 因此现在更新的.dll 具有以下信息。创建于 2016 年 1 月 1 日,最后修改于 2016 年 1 月 11 日。
- 现在测试后,我发现有一些错误,所以我想返回旧的 .dll
- 所以我从安全的地方复制 .dll,并将其粘贴到 IIS 相关文件夹中。我选择替换当前文件。
现在我的问题是我如何知道第 6 点上的操作何时发生?因为 .dll 将具有原始信息;创建于 2016 年 1 月 1 日并修改于 2016 年 1 月 7 日。但我需要知道操作 6 的具体发生时间。换句话说,更新的 .dll 何时被原始 .dll 替换?因为我需要检查一些日志以查看更新的 .dll 文件不再存在时错误是否已被删除。
答案1
仅列举几种可能性...
您可以检查 USN 日志。(Powershell 模块 Powerforensics 有一个很好的 cmdlet 用于此目的。Get-ForensicUsnJrnl
每次在 NTFS 卷上触碰文件时,该日志中都会有记录。)
或者你可以使用.NET 文件系统观察器。
还有其他可能性,但其中有几个可以帮助您入门。
答案2
- 要监控文件的变化,您可以使用 tripwire 或其开源对应 OSSSEC。这只会在文件发生更改且不再符合“基线”时进行监控和警报。
- 您可以将文件添加到版本控制系统(如 subversion 或 git)中。这样您就可以维护文件集合,并在测试用例不起作用时恢复到旧版本。
- Puppet,puppet 可能只是为了确保 DLL 文件与您的“好”版本匹配而有点小题大做,但它允许您定义一个源文件,该文件您希望以当前形式存在于其他服务器上。如果远程服务器上的 DLL 文件发生变化,puppet 将比较 MD5 哈希值并查看变化,然后将其替换为“好”版本。当您对新版本感到满意时,您可以在 puppet 服务器上替换该文件,然后 puppet 会很乐意将其部署到您的远程服务器。