Grep 由一个页面(shell)的引用驱动的总体页面视图

Grep 由一个页面(shell)的引用驱动的总体页面视图,grep,tcsh,uniq,openbsd,access-log,Grep,Tcsh,Uniq,Openbsd,Access Log,拥有nginx或apache的标准组合访问日志格式的日志文件,在unixshell中,您将如何计算给定参考者曾经带来的每个访问者(即IP地址)的访问次数或页面浏览次数(即总请求数) 换句话说,每个访问者在另一个站点上找到指向您站点的链接的所有请求数。我能想到的最佳片段如下: fgrep http://t.co/ /var/www/logs/access.log | cut -d " " -f 1 | \ fgrep -f /dev/fd/0 /var/www/logs/access.log |

拥有nginx或apache的标准
组合
访问日志
格式的日志文件,在unixshell中,您将如何计算给定参考者曾经带来的每个访问者(即IP地址)的访问次数或页面浏览次数(即总请求数)


换句话说,每个访问者在另一个站点上找到指向您站点的链接的所有请求数。

我能想到的最佳片段如下:

fgrep http://t.co/ /var/www/logs/access.log | cut -d " " -f 1 | \
fgrep -f /dev/fd/0 /var/www/logs/access.log | cut -d " " -f 1 | sort | uniq -c
这有什么用

我们首先找到具有
http://t.co/
在日志条目中。(请注意,这将只计算直接来自ref的访问量,而不包括停留和进一步浏览站点的访问量。)

在有了一个IP地址列表(在某一点上是从给定URL引用的)之后,我们通过
stdin
-
/dev/fd/0
(一个非常低效的替代方法是
xargs-n1 fgrep access.log-e
而不是
fgrep-f/dev/fd/0 access.log
)用于从这些地址查找所有点击

在第二次
fgrep
之后,我们得到了与第一步相同的一组IP地址,但现在它们根据请求总数重复——现在
sort
uniq-c
,完成:)