我对整个Linuxnetworking服务器都很新颖,所以请和我一起裸照。
是否有可能知道我的服务器上的PHP文件是否被用户访问?
有一个我可以通过SSH使用的命令,将列出每个IP地址和他们要求的网页?
我的最终目标是运行一个cron作业来执行一个特定的php文件,如果它尚未被任何用户访问。
谢谢!
你可以检查apache访问日志文件。 它显示以下字段:date/时间,IP地址,包括参数的URL等。
查看文件;
$ less /var/log/apache/access.log
要search文件:
$ grep keyword /var/log/apache/access.log
要小心,看到apache日志中的PHP文件名不能保证它在执行脚本时仍然在运行。
编辑:如果你想在build立时看到HTTP连接,你可以像这样使用tcpdump:
$ sudo tcpdump -XX -vv -n -w /tmp/http_trace.pcap port 80
我不能确定100%的filter语法“端口80”,但是这将只捕获目的地为80端口的HTTPstream量。另外,您可以使用此命令查看已build立的连接:
$ netstat -an | grep ESTABLISHED
要连续观看这个命令,你可以使用watch命令:
$ watch -n1 netstat -an
-n1表示每秒运行一次命令。
要做到这一点,你将需要确保PHP运行在用户下的模式,而不是作为Apache用户。
ps aux | grep php
这应该工作得很好…
为了获得更多关于你的apache统计信息,你可以使用Request-log-analyzer ( https://github.com/wvanbergen/request-log-analyzer/wiki )从access.log文件中获得报告。
报告示例: https : //github.com/wvanbergen/request-log-analyzer/wiki/Sample-output