统计一个文本文件里面含某一个域名的次数

比如我当时一个邮件服务器队列上万,我查了日志,看是谁在发垃圾邮件,如下方法是查谁在发垃圾邮件:
用户发邮件有两个来源:
1. 使用smtp
2. 使用sendmail,用程序发信
可以用命令
grep sasl_username /var/log/maillog | awk '{print $9}'|sort
查看那些用户用SMTP发信
可以用命令
grep uid= /var/log/maillog | grep -v uid=0 | awk '{printf("%s %s\n", $7,$8)}' | sort
察看那些用户用sendmail发信。继而可以用
grep :x:UID: /etc/passwd
命令查到该用户是那个站点的。
这样我把它输入在一个文本里面。然后再去统计哪一个域名是多少个。可以用下面脚本:
awk -F'@'  '{a[$2]++}END{for(i in a){print i"==>"a[i]}}'  urfile
其中urfile是文件名。
比如2.txt里面有好多aaa.com,如下面
sasl_username=aa1@aaacom
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
 

你可能感兴趣的:(职场,postfix,休闲)