Linux系统运维命令:查看cache里的URL,即查看系统访问了哪些包含http的url(使用grep结合awk,组合命令实现功能)

目                录

一、需求

二、解决方法

1、解决思路

2、命令

三、实例演示和命令解释

1、实例演示

2、命令解释

四、扩展


一、需求

      想知道某台linux机器最近访问了哪些http的web地址,如何处理?

二、解决方法

1、解决思路

        Linux系统访问外部web,也就是外部的http地址,这些数据应该保存在缓存中,所以应该想办法看linux系统的cache,cache中会又从外部web下载下来的一些图片和文本等信息,可以从jpg或者html等文件中获取一些信息。

2、命令

        经过反复斟酌,考虑使用grep结合awk,形成组合命令,实现需求,如下:

grep -r -a jpg /var/cache/* | strings | grep "http:" | awk -F'http:' '{print "http:"$2;}'

三、实例演示和命令解释

1、实例演示

[root@localhost base]#
[root@localhost base]# grep -r -a jpg /var/cache/* | strings | grep "http:" | awk -F'http:' '{print "http:"$2;}'
http://www-archive.mozilla.org/directory/javasdk.htmlZ
http://bugs.centos.org>
http://bugs.centos.org>
http://bugs.centos.org>v
http://bugs.centos.org>v
http://tug.org/texlive/^
http://bugs.centos.org>MH8
http://tug.org/texlive/^
http://bugs.centos.org>
http://stedolan.github.io/jq/^
http://liballeg.org/]LF
http://www.ecplusplus.com/index.php?page=projects&pid=1]LF
[root@localhost base]#
[root@localhost base]#

2、命令解释

        本命令的作用是:/var/cache/目录及其子目录中递归地搜索包含“jpg”字符串的文件或文件内容,然后提取出这些文件中的可打印字符串,并筛选出包含“http:”的字符串,最后提取并打印出这些字符串后面的部分,就是URL

(1)grep -r -a jpg /var/cache/*

         grep:这是一个搜索文本的命令,它会在指定的文件或目录中搜索与给定模式匹配的行。

         -r:这个选项告诉grep递归地搜索指定目录下的所有文件和子目录。

         -a:这个选项告诉grep把二进制文件当作文本文件来处理。这意味着grep会尝试在二进制文件中搜索匹配项,而不仅仅是文本文件。

         jpg:这是我们要搜索的模式,它会匹配包含“jpg”字符串的文件或文件内容。

         /var/cache/*:这是我们要搜索的目录,星号(*)表示该目录下的所有文件和子目录。

         所以,这个命令会递归地在/var/cache/目录及其子目录中搜索包含“jpg”字符串的文件或文件内容。

(2)、|

         管道符号,它会将前一个命令的输出作为下一个命令的输入。在这个命令组合中,grep命令的输出会被传递给strings命令。

(3)、strings

         strings命令用于从二进制文件中提取可打印的字符串。这通常用于从二进制文件(如可执行文件、库文件、图片文件等)中提取出文本信息。

        在这命令组合中,strings命令会接收grep命令的输出,并尝试从匹配的文件中提取出可打印的字符串。

(4)、grep "http:"

         再次使用grep命令,这次我们是在strings命令的输出中搜索包含“http:”字符串的行。

         这会筛选出包含HTTP协议的URL或相关字符串的行。

(5)awk -F'http:' '{print "http:"$2;}'

         awk是一个强大的文本处理工具,它可以对文本文件进行模式扫描和处理。

         -F'http:':这个选项设置了awk的字段分隔符为“http:”。这意味着awk会把每一行文本按照“http:”来分割成不同的字段。

         '{print "http:"$2;}':这是awk的动作部分,它告诉awk打印每一行的第二个字段,并在前面加上“http:”。

四、扩展

        在实际使用中,你可能查看访问包含rtmpurl,你可稍微做些修改,就可以适合您的应用了。比如,http改成rtmp,你可以用如下命令即可:

grep -r -a jpg /var/cache/* | strings | grep "rtmp:" | awk -rtmp:' '{print "rtmp:"$2;}'

你可能感兴趣的:(linux,运维,服务器,缓存cache,grep,awk,url)