来看脚本内容,脚本内注释应该已经比较详细了
cat awstats/shells/cp_logs_for_awstats.sh
#!/bin/sh
log_dir_s=/data/nginx_log/backup
#各台server日志文件源目录
log_dir_d=/data/nginx_log/log_analyze
#定义将日志拉取到本地后的存放路径
time1=`date
-d "1 day ago" +%F`
#获取一天前的日期
time2=`date
-d "2 day ago" +%F`
basedir=/usr/local/services/awstats-
7.4
echo -e "`date` 开始拉取日志\n" >
$basedir/logs/cron.log
for server_ip
in `cat /root/shells/ips.txt`
#记录需要统计日志的所有主机ip和主机名
do
ip=`
echo $server_ip|awk -F
'-' '{print $2}'`
#获取各server IP
echo -e "\e[1;32m \n----------rsync logs from $ip----------\e[0m" >>
$basedir/logs/cron.log
#为了减少ssh连接,在此步将该ip下的所有前一天的access日志拷贝至本地/tmp下
rsync -avz --compress-level=
6 --progress --exclude=
"default.*" --min-size=
1k
$ip:
$log_dir_s/*access*
"$time1" /tmp/
#取得上一天的日志备份文件名 log_name
for log_name
in `
cd /tmp/;ls *.access.log*`
do
vhost_name=`
echo $log_name|awk -F.access
'{print $1}'`
#取得web server的vhost名
echo -e "\e[1;32m
-----拷贝$vhost_name日志-----\e[0m" >>
$basedir/logs/cron.log
#在本地建立目录分类存放cp过来的日志
if [ !
-d "$log_dir_d/$vhost_name" ];
then
mkdir
$log_dir_d/
$vhost_name
fi
rm
-f $log_dir_d/
$vhost_name/*
"$time2"*
mv /tmp/
$log_name $log_dir_d/
$vhost_name/
$log_name.
$ip
#从tmp下依次mv日志文件到目标目录
done
done
echo -e "`date` 拉取日志完成\n" >>
$basedir/logs/cron.log
上面的shell脚本只是将分散在各web server的日志文件按规则拉取到了本地特定目录,接下来的shell脚本用来调用awstats.pl循环处理各站点日志
cat awstats/shells/cron_awstats_update.sh
#!/bin/sh
#awstats日志分析
basedir=/usr/local/services/awstats-
7.4
cd $basedir
#循环更新所有站点日志统计信息
echo -e "\e[1;31m-------`date "+%F %T
"` 开始处理---------\n\e[0m" >>logs/cron.log
for i
in `ls result/`
do
echo -e "\e[1;32m -----`date "+%F %T
"` 处理 $i 日志-----\e[0m" >>logs/cron.log
perl wwwroot/cgi-bin/awstats.pl -config=etc/
$i.conf -lang=cn -update &>>logs/cron.log
done
echo -e "\e[1;31m\n-------`date "+%F %T
"` 处理完成---------\e[0m" >>logs/cron.log
这两个脚本作为计划任务在awstats server运行,我的crontab如下
#日志分析平台
5 0 * * * /bin/bash /root/shells/cp_logs_to_img2_for_awstats.sh ; /bin/bash /root/shells/cron_awstats_update.sh
至此,这么一套东西就算完成了。
写了这么多,希望我说清楚了。看到此处的伙伴,希望能对你们有些许帮助吧!
AWStats配置 (Windows + Apache )
CentOS 6.3下AWStats+GeoIP实现查看网站访问归属地
Nginx 日志分析 AWStats + JAWStats 安装配置
经典日志分析工具-AWStats
AWStats日志系统配置文件和错误归纳
使用AWStats分析网站日志-强大的日志分析工具