![监视远程 Web 服务器上的文件是否被更改](https://linux22.com/image/531151/%E7%9B%91%E8%A7%86%E8%BF%9C%E7%A8%8B%20Web%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84%E6%96%87%E4%BB%B6%E6%98%AF%E5%90%A6%E8%A2%AB%E6%9B%B4%E6%94%B9.png)
在以下前提条件下,监控远程 Web 服务器上的文件是否被更改的最佳方法是什么?
- 服务器运行不同的操作系统,但大多数是某种版本的 Linux,有几个运行 Windows Server。
- 并非所有服务器都提供 SSH 访问。
- 检查主要是为了测试用于生成页面的 php 模板是否已损坏。模板的大小不会改变,因此文件的校验和始终相同,由管理员专门替换。
到目前为止,我只想到了在每台服务器上专门放置一个文件,然后轮询每个文件以检索诊断数据的选项。然而,我担心如果这些文件位于面向公众的目录中,需要外部源轮询,它们本身是否可能受到损害。
答案1
与tripwire类似,但是OSSEC也会监视文件修改:http://www.ossec.net(这需要在相关服务器上安装轻量级代理)。
答案2
基本上你所描述的正是服务的行为,例如https://monitorwebsitefilechanges.cloud
您在网站上加载一个简单的 php 代理,它会定期查询以获取您网站空间上的文件快照(文件名、大小和上次修改日期)。然后将这些数据与之前的快照进行比较,并在文件添加、删除或修改时通知您。
与以下服务相比,我更喜欢这种服务绊线 因为它们不需要任何安装,也可以在没有 SSH 访问和没有 cron 作业的廉价托管上运行。
答案3
您可以使用 monit 工具来实现这一点。以下是值得一试的 URL。
答案4
您可以使用 nagios 来实现这一点 - 基本上,编写您自己的插件来触发 diff 并检查与预定义是否有任何差异,以及写入受保护的样本很容易。它可能比 tripwire 灵活得多,tripwire 基本上在基于校验和的测试上工作,而 nagios 可能可以满足您的需要。以下是一个例子:http://blog.gnucom.cc/2010/check-file-for-changes-with-nagios/