恶意刷取手机短信的日志分析

日志初筛

一般来讲,日志文件都是存在linux服务器,所以,第一步的数据提取操作其实可以由linux平台上的文本分析小钢炮grep, sed, awk完成。

例如,我们需要提取[手机号: 18811112222, ...这样的字段手机号码,我们可以使用以下脚本实现:

less catalina.out | grep '\[手机号' | sed 's/^.*手机号://g' | sed 's/,.*$//g'

sed部分可以多提一点:

  • 通过sed 's/^.*str1//g'筛掉str1前的内容
  • 通过sed 's/str2.*$//g'筛掉str2后的内容。

这样,在把筛到的手机号保存到文件里就ok了:

less catalina.out | grep '\[手机号' | sed 's/^.*手机号://g' | sed 's/,.*$//g' > mobile.txt

号码频率的统计

接下来,需要统计mobile.txt文件中各个号码出现的次数。

最简单的实现方式当然是使用一个dictionary去存储每一个关键字,然后在出现的时候做累加。这很容易实现。

这里在提供另外一种使用pandas现成模块的方法:

import pandas as pd

# import data
data = pd.read_csv('mobile.txt', sep=" ", header=None)

# check statistical feature
data.describe()
len(data)
len(data.drop_duplicates())

# get each item's counting, and export to mobileRes.txt file
data.groupby(data.columns.tolist(),as_index=False, sort=False).size().sort_values(ascending=False).to_csv("mobileRes.txt", sep='\t', encoding='utf-8')

这样,你便能得到一个两列的数据,第一列为手机号码,第二列为对应的频数。

有了它们后,便可以画出手机频率分布图,继续使用Python或者Excel都可以简单实现。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 基础命令 主要的命令和快捷键 Linux系统命令由三部分组成:cmd + [options]+[operation...
    485b1aca799e阅读 1,133评论 0 0
  • 1.Linux下如何用命令查看实时日志(完整命令) tail -f 路径.log查看前多少行 tai-200f 路...
    qianyewhy阅读 2,346评论 0 11
  • 什么是运维 术语名词 IDC--(Internet Data Center)互联网数据中心,主要服务包括整机租用、...
    lyh165阅读 2,762评论 0 19
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,429评论 0 2
  • 【1】跨洋過海藍瘦香菇一場空。 您好。本来我是想给爷爷寄去纸质信,可我现在加拿大,等这封信漂洋过海到爷爷手里这个活...
    MABEL梅阅读 435评论 0 0