手动为AWStats创builddnscache.txt

根据AWStats的文档:

AWStats可以通过以前手动创build的静态DNScaching文件进行反向DNS查找。

通过search文档,以及一点点谷歌search,留给我一个问题。 如何手动创buildDNScaching文件? 有没有一个Linux命令来做到这一点,我还没有find? 这是在Centos 5.5机器上。

正如它下面所说的,你可以使用任何文本编辑器来创build一个格式为ipaddress resolved_hostname的文本文件,如下所示:

 192.168.1.11 websrv1 192.168.1.12 websrv2 192.168.1.13 websrv3 

不要忘记设置DNSLookup=2


我曾希望能够从现有的信息,如Apache日志创build文件。

当然,你可以通过从Apache的access_log获取IP地址来做到这一点,并使用一些工具,如: dighostresolveip …来parsing主机名,如下所示:

 $ awk '{ print $1 }' access_log | sort | uniq | \ while read ip; do \ if [ `dig +short -x $ip | sed 's/\(.*\)\./\1/' | wc -l` -eq 1 ]; then \ echo -e $ip\\t$(dig +short -x $ip | sed 's/\(.*\)\./\1/') >> dnscache.txt; \ fi; \ done 

要继续更新此文件,可以将上述命令作为cron作业运行,并仅在特定时间范围(等于cron时间间隔)中过滤日志。

从这里说的同一个手册

注意:DNScaching文件格式是'minsince1970 ipaddress resolved_hostname'或者'ipaddress resolved_hostname'

所以你可以通过这样做来产生它:

 host -ta google.com | awk '{ print $4 " " $1 }' > dnscache.txt 

或者如果你有(更可能)的IP地址

 for ip in 8.8.8.8; do name=`host $ip | cut -d ' ' -f 5` if [ X"3(NXDOMAIN)" != X"$name" ]; then echo "$ip $name" fi done > dnscache.txt 

真的,虽然你会想要做更多的错误检查和一些比awstats更快的工作。