- Plesk for Linux
How to recalculate AWStats web statistics from domain logs for previous months?
Log in to Plesk server using SSH.
Download and unpack the script on the server:
# wget https://plesk.zendesk.com/hc/article_attachments/360001568074/rebuild_awstats.tar.gz
# tar -xzvf rebuild_awstats.tar.gz
Note: for Ubuntu 14.04, a symbolic link should be created:
# ln -s /usr/lib/plesk-9.0/logresolvemerge /usr/share/doc/awstats/examples/logresolvemerge.pl
Rebuild the web statistics for a domain with the command:
# ./rebuild_awstats.sh example.com
How the script works:
- For each specified domain (or all domains, if the
-Aoption is used), the script will memorise the log file's start date.
- Then, it will remove AWStats data files for the months covered by the log files and rebuild them with corresponding information.
- Finally, the script will build static pages with statistics summary for each month covered by the log files.
Alternatively, if the
option is used, all AWStats data will be removed and new files will be generated using only the information from the log files.
In order to merge statistics which was created from scratch with AWStats statistics in another directory, the corresponding .txt file and the directory should be copied from
directory. For example, statistics of domain example.com for December were created from scratch. In this case, the following files should be copied from
Note: it is very important to copy .txt file, otherwise new statistics (from scratch) can be erased.
Usage: ./rebuild_awstats.sh [options] [<domains...>]
Process all domains. If this option is not specified, then list of
domains to process must be provided.
Remove contents of webstat/ and webstat-ssl/ directories before
rebuilding statistics pages (originals are saved with numeric
suffix). Statistics will be rebuilt from logs only, only for
period covered by log files. If this parameter is not used, then
statistics is recalculated beginning on the month on which log files
start (if log starts in the middle of the month, then statistics
for first half of the month will not be present.)
For every processed domain, the script will report message like:
Saving: webstat* --> webstat*.9
Logs begin on Oct 27 2012
access_log* (new/old/corrupted): 9/0/0
access_ssl_log* (new/old/corrupted): 71/0/0
Rebuilding static pages: 2012-10 2012-11 2012-12 2013-01 2013-02
The message above shows the original directories are saved with a numeric suffix (the suffix is increased if the destination directory already exists). As a result, it is possible to roll-back to a previous version if it will be required.
In case the script was launched to recalculate statistics from scratch (with -F flag), which removes old statistics that are not stored in log files, it is possible to restore it from the backup that was created by the script.
The backup is stored in the directories with names webstat.N and webstat-ssl.N, where N is a number. This directory is specified in the output when the script is launched:
Saving: webstat* --> webstat*.11
Use this article #213408789 if the script fails with one of following errors:
./rebuild_awstats.sh: line 210: /usr/share/awstats/tools/logresolvemerge.pl: No such file or directory
ERROR: failed to merge access_log*. Skipping domain.
ERROR /usr/share/awstats/wwwroot/cgi-bin/awstats.pl cannot be executed.
ERROR /usr/lib/cgi-bin/awstats/awstats.pl cannot be executed