我试图找出特定网络文件被访问了多少次。我对服务器具有 root 访问权限,但不知道在哪里查看。我查看的唯一地方是 /home/FTPUSER/access-logs ,它是 /usr/local/apache/domlogs/perrysre 的符号链接,并且该访问日志中只有 1 天的数据。
任何帮助将不胜感激。
我试图找出特定网络文件被访问了多少次。我对服务器具有 root 访问权限,但不知道在哪里查看。我查看的唯一地方是 /home/FTPUSER/access-logs ,它是 /usr/local/apache/domlogs/perrysre 的符号链接,并且该访问日志中只有 1 天的数据。
任何帮助将不胜感激。
如果您的访问日志仅包含一天的数据,那么它可能每天都在轮换。您需要弄清楚这是如何配置的。如果您使用的是 Linux,它可能与
logrotate
-- 查看/etc/logrotate.d/
或/etc/logrotate.conf
是否存在。在 FreeBSD 上,日志轮换配置为/etc/newsyslog.conf
.Apache 也可能通过rotatelogs做到这一点。如果是这样,这将
CustomLog
在服务器配置 (httpd.conf
) 中的一行中进行设置,它可能位于/etc/httpd
或者,更有可能给定您的日志位置,/usr/local/apache/conf
.如果这些都不起作用,请询问配置它的人!
我认为,由于从您的问题来看,我无法争辩您正在使用的系统设置,因此查找进程使用的文件的通用方法可以解决问题。
尝试使用lsof -p
<PID_OF_APACHE_DAEMON>
。您可以通过多种方式检索 PID,一种是查看netstat -tlnop输出,另一种是使用lsof -i等等。
这是一个可以工作的 POC:
在这里,我假设您的 apache 守护进程当然正在监听标准 tcp 端口 80。
所有 Apache 日志通常存储在:
/var/log/apache(2)/access.log
/var/log/apache(2)/error.log
/var/log/apache(2)/customs .log
我喜欢一个很好的命令来计算一些东西:
然后你会有一个号码。假设您有一个 FTP 日志,并且每次 john 连接时,都会出现一行“John opens a session”。所以你会这样做:
会给你约翰打开会话的次数。如果你想要一段时间等,你也可以这样做