我想创建一个脚本来计算特定字符串(域名)的出现次数 从每小时的日志文件(邮件日志),以检查他们每小时发送的电子邮件数。
我知道有很多简单而不同的方法可以在文件中找到一个脚本(比如grep等) 并计算行数(如wc -l) 但我不知道每小时怎么做。
是的我可以通过cron作业每隔60分钟调用一次脚本,但这会从头开始读到日志文件,直到脚本被执行的那一刻......而不是过去60分钟内的行,我不知道我知道如何克服这一点。
注意:
我正在使用的命令显示每个域的所有已发送电子邮件:
\# cat /usr/local/psa/var/log/maillog | grep -i qmail-remote-handlers \
| grep from | awk {' print $6 '} | gawk -F@ '{ print $2 }' \
| sort | uniq -c | sort -n | tail
结果如下:
8 domain1.tld
45 domain34.tld
366 domain80948.tld
etc etc
答案 0 :(得分:0)
问题的主要内容是:
Yes I can call the script every 60 minutes via a cron job but this would read the log file
from the beginning till the moment the script was executed..and not the lines made in the
last 60 minutes, and I don't know how to overcome this.
你怎么能解决这个问题?
sed
跳过这些行。dd
跳过它。我个人会选择方法2.它实现起来非常高效且非常简单。