#!/bin/bash # info: update domain statistics # options: user domain # # The function runs log analyzer for speciefic webdomain. #----------------------------------------------------------# # Variable&Function # #----------------------------------------------------------# # Argument defenition user=$1 domain=$(idn -t --quiet -u "$2" ) domain_idn=$(idn -t --quiet -a "$domain") # Includes source $VESTA/conf/vesta.conf source $VESTA/func/main.sh source $VESTA/func/domain.sh #----------------------------------------------------------# # Verifications # #----------------------------------------------------------# check_args '2' "$#" 'user domain' validate_format 'user' 'domain' is_system_enabled "$WEB_SYSTEM" is_object_valid 'user' 'USER' "$user" is_object_unsuspended 'user' 'USER' "$user" is_object_valid 'web' 'DOMAIN' "$domain" is_object_unsuspended 'web' 'DOMAIN' "$domain" is_object_value_exist 'web' 'DOMAIN' "$domain" '$STATS' #----------------------------------------------------------# # Action # #----------------------------------------------------------# get_domain_values 'web' # Checking config config="$HOMEDIR/$user/conf/web/$STATS.$domain.conf" if [ ! -e "$config" ]; then echo "Error: Parsing error" log_event "$E_PARSING" "$EVENT" exit $E_PARSING fi # Checking statistics directory dir="$HOMEDIR/$user/web/$domain/stats" if [ ! -e "$dir" ]; then mkdir -p $dir fi # Defining functions build_webalizer() { /usr/bin/webalizer -c $config } build_awstats() { awstats="/var/www/awstats" awstats_options="-config=$config -staticlinks -update -output" month=$(date "+%Y-%m") output='alldomains allhosts lasthosts unknownip allrobots lastrobots session urldetail urlentry urlexit osdetail unknownos browserdetail unknownbrowser refererse refererpages keyphrases keywords errors404' # Checking statistics directory if [ ! -e "$dir/$month" ]; then mkdir -p $dir/$month fi # Icon directory check if [ ! -e "$dir/icon" ]; then cp -r $awstats/icon $dir/ fi # Creating main awstats page $awstats/awstats.pl $awstats_options |\ sed -e "s%awstats.$config.%%g" > $dir/$month/index.html # Creating suplemental awstats pages for format in $output; do $awstats/awstats.pl $awstats_options=$format |\ sed -e "s%awstats.$config.%%g" > $dir/$month/$format.html done # Creating index page cat $WEBTPL/awstats_index.tpl | sed -e "s/%month%/$month/g" \ > $dir/index.html # Creating navigation page months=$(find $dir -type d | sed -e "s%$dir/%%g" -e "s%$dir%%g" |\ grep -v icon | sort -r ) for link in $months; do select_m="$select_m\t