| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- #!/bin/bash
- # info: updating domain web statistics
- #----------------------------------------------------------#
- # Variable&Function #
- #----------------------------------------------------------#
- # Argument defenition
- user="$1"
- domain=$(idn -t --quiet -u "$2" )
- domain_idn=$(idn -t --quiet -a "$domain")
- # Importing variables
- source $VESTA/conf/vars.conf
- source $V_FUNC/shared_func.sh
- source $V_FUNC/domain_func.sh
- #----------------------------------------------------------#
- # Verifications #
- #----------------------------------------------------------#
- # Checking arg number
- check_args '2' "$#" 'user domain'
- # Checking argument format
- format_validation 'user' 'domain'
- # Checking web system is enabled
- is_system_enabled 'web'
- # Checking user
- is_user_valid
- # Checking domain exist
- is_web_domain_valid
- # Checking domain is not suspened
- is_domain_suspended 'web'
- # Checking stats enabled
- is_web_domain_value_exist '$STATS'
- #----------------------------------------------------------#
- # Action #
- #----------------------------------------------------------#
- stats=$(get_web_domain_value '$STATS')
- # Checking config
- config="$V_HOME/$user/conf/$stats.$domain.conf"
- if [ ! -e "$config" ]; then
- echo "Error: Parsing error"
- log_event 'debug' "$E_PARSE_ERROR $V_EVENT"
- exit $E_PARSE_ERROR
- fi
- # Checking statistics directory
- dir="$V_HOME/$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 $V_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 <option value=\"$link\">$link<\/option>\n"
- done
- cat $V_WEBTPL/awstats_nav.tpl | sed -e "s/%select_month%/$select_m/" \
- > $dir/nav.html
- }
- # Switching on statistics type
- case $stats in
- webalizer) build_webalizer ;;
- awstats) build_awstats ;;
- esac
- # Chown
- chown -R $user:$(groups $user| cut -f 3 -d ' ') $dir
- #----------------------------------------------------------#
- # Vesta #
- #----------------------------------------------------------#
- # Logging
- log_event 'system' "$V_EVENT"
- exit $OK
|