监视远程 Web 服务器上的文件是否被更改

监视远程 Web 服务器上的文件是否被更改

在以下前提条件下,监控远程 Web 服务器上的文件是否被更改的最佳方法是什么?

  • 服务器运行不同的操作系统,但大多数是某种版本的 Linux,有几个运行 Windows Server。
  • 并非所有服务器都提供 SSH 访问。
  • 检查主要是为了测试用于生成页面的 php 模板是否已损坏。模板的大小不会改变,因此文件的校验和始终相同,由管理员专门替换。

到目前为止,我只想到了在每台服务器上专门放置一个文件,然后轮询每个文件以检索诊断数据的选项。然而,我担心如果这些文件位于面向公众的目录中,需要外部源轮询,它们本身是否可能受到损害。

答案1

与tripwire类似,但是OSSEC也会监视文件修改:http://www.ossec.net(这需要在相关服务器上安装轻量级代理)。

答案2

基本上你所描述的正是服务的行为,例如https://monitorwebsitefilechanges.cloud

您在网站上加载一个简单的 php 代理,它会定期查询以获取您网站空间上的文件快照(文件名、大小和上次修改日期)。然后将这些数据与之前的快照进行比较,并在文件添加、删除或修改时通知您。

与以下服务相比,我更喜欢这种服务绊线 因为它们不需要任何安装,也可以在没有 SSH 访问和没有 cron 作业的廉价托管上运行。

答案3

您可以使用 monit 工具来实现这一点。以下是值得一试的 URL。

http://mmonit.com/monit/

答案4

您可以使用 nagios 来实现这一点 - 基本上,编写您自己的插件来触发 diff 并检查与预定义是否有任何差异,以及写入受保护的样本很容易。它可能比 tripwire 灵活得多,tripwire 基本上在基于校验和的测试上工作,而 nagios 可能可以满足您的需要。以下是一个例子:http://blog.gnucom.cc/2010/check-file-for-changes-with-nagios/

相关内容