Última actividad 6 months ago

Revisión ce5fc8c3afbbe2f4b6ccc713cf07eb5835f3379b

run_goaccess Sin formato
1#!/bin/bash
2
3LOG_DIR="/var/log/apache2/vhosts/access_logs/"
4VHOST_BASE="/var/www/"
5STATS_OUT_DIR="/stats/"
6BOOTSTRAP=0
7
8for DIR in $(find /var/www/ -maxdepth 2 -name 'public_html' -type d); do
9 VHOST=$(basename $(echo $DIR | sed "s/\/public_html.*//"))
10
11 if [ "$BOOTSTRAP" == "1" ]; then
12 [ ! -d $VHOST_BASE/$VHOST/goaccess-db ] && mkdir -p $VHOST_BASE/$VHOST/goaccess-db
13 [ ! -d $VHOST_BASE/$VHOST/stats ] && mkdir -p $VHOST_BASE/$VHOST/stats
14 [ $(grep -c "Alias /stats" /etc/apache2/sites-available/"$VHOST"_settings) -le 0 ] && sed -i "/Alias \/phpmyadmin.*/a \\\tAlias /stats \"\/var\/www\/$VHOST\/stats\/\"" /etc/apache2/sites-available/"$VHOST"_settings
15 if [ ! -f /var/www/"$VHOST"/stats/.htaccess ]; then
16 USER="$(stat -c "%U" "$VHOST_BASE/$VHOST/public_html" )"
17 printf "AuthName \"restricted stuff\"\nAuthType Basic\nAuthUserFile /etc/apache2/users\n\nrequire user focus $USER" > $VHOST_BASE/$VHOST/stats/.htaccess
18 fi
19 fi
20
21 LOGFILES=()
22 for ext in log log.1; do
23 logfile="$LOG_DIR/$VHOST-access.$ext"
24 [ -e "$logfile" ] && LOGFILES+=("$logfile")
25 done
26
27 if [ ${#LOGFILES[@]} -eq 0 ]; then
28 echo "No log files in '$LOGDIR'"
29 exit 0
30 fi
31
32 goaccess \
33 --agent-list \
34 --anonymize-ip \
35 --persist \
36 --restore \
37 --config-file /etc/goaccess/goaccess.conf \
38 --db-path "$VHOST_BASE/$VHOST/goaccess-db" \
39 --log-format "COMBINED" \
40 --output "$VHOST_BASE/$VHOST/$STATS_OUT_DIR/index.html" \
41 "${LOGFILES[@]}"
42done