问题一:
提交当天访问次数最多的IP,即黑客IP
因为我们做的是关于Apache的题目,一般Linux下日志路径为:
/var/log/apache/access.log
/var/log/apache2/access.log
/var/log/httpd/access.log
所以我们访问一下/var/log/apache 看一下都有什么文件,发现access.log为空,那么就访问一下access.log.1
会看到正常的日志
因为要访问次数最多的,所以肯定需要进行排序,然后去除唯一的,然后输出次数,选择第一行
cat /access/log.1 |awk '{print $1}'|sort|uniq -c|sort -nrk 1|head -1
问题二:
黑客使用的浏览器指纹是什么,提交指纹的md5
这个直接过滤刚才得到的ip然后看指纹就行
问题三:
查看包含index.php页面被访问的次数,提交次数:
也是直接过滤index.php然后wc -l就行
问题四:
查看黑客IP访问了多少次,提交次数:
过滤ip然后wc -l
但是这里有一个点,因为如果正常过滤的话
grep '192.168.200.2' 的话,会将所有的第四段为2开头的ip全都过滤保留下来,这就会导致留下的数量多于我们需要的,所以应该写命令为grep '192.168.200.2 - -' 这样就能保证过滤出来的就是我们想要的
grep的匹配逻辑不同 ------ 加空格是「精确匹配 IP 作为独立字段」,不加空格是「模糊匹配包含该 IP 字符串的所有行」,多出来的 1 行就是「IP 不是独立字段」的日志 就和数据库中 like一样
问题五:
查看2023年8月03日8时这一个小时内有多少IP访问,提交次数:
直接过滤时间段就行,这道题问的有问题,最后他要的答案是访问的ip的不同的个数,让人很容易理解成所有ip访问的次数
最后这道题给我提了个醒,那就是uniq的时候,只能将相邻行进行合并,不能隔行,所以我们应该先sort排序,这样uniq的时候就不会导致一样的东西重复出现