Debian Lenny 上的 apache2 http 监控

Debian Lenny 上的 apache2 http 监控

我是否可以知道我的服务器上的 php 文件是否正在被用户访问?

是否有一个命令可以通过 ssh 使用,列出每个 IP 地址以及它们正在请求的页面?

我的最终目标是,如果还没有任何用户访问某个特定的 php 文件,则运行一个 cron 作业来执行该文件。

答案1

您可以检查 apache 访问日志文件。它显示以下字段:日期/时间、IP 地址、包括参数的 URL 等。

查看文件;

$ less /var/log/apache/access.log

要搜索文件:

$ grep keyword /var/log/apache/access.log

请注意,在 apache 日志中看到 PHP 文件名并不能保证它在执行脚本时仍在运行。

编辑:如果您想在建立 HTTP 连接时查看它们,您可以像这样使用 tcpdump:

$ sudo tcpdump -XX -vv -n -w /tmp/http_trace.pcap port 80

我对过滤器语法“端口 80”不是 100% 确定,但这只会捕获发往端口 80 的 HTTP 流量。此外,您可以使用此命令查看已建立的连接:

$ netstat -an | grep ESTABLISHED 

要连续监视该命令,可以使用 watch 命令:

$ watch -n1 netstat -an

-n1 表示每秒运行一次命令。

答案2

为此,您需要确保 php 在用户模式下运行,而不是以 apache 用户模式运行。

ps aux | grep php 

这样就好了...

答案3

为了获得有关 apache 统计数据的更多详细信息,你可以使用以下方法从 access.log 文件中获取报告 请求日志分析器https://github.com/wvanbergen/request-log-analyzer/wiki

报告样本: https://github.com/wvanbergen/request-log-analyzer/wiki/Sample-output

相关内容