This morning I needed to audit some log files that I had recently processed through AWstats and received a report that there was a discrepancy in the data. The complaint was that one day was missing. I used the following bash script to print out the start and end timestamp of each log file:
for file in $( ls -tr *.gz ) ; do BEGIN=$(zcat ${file} | head -n 1 | awk '{print $4}'); END=$(zcat ${file} | tail -n 1 | awk '{print $4}'); echo "${file} - ${BEGIN} - ${END}"; done
Note that each log file was named uniquely by web server and logrotate number, eg webserver1.access_log.XX.gz.
Leave a Reply