HEX
Server: CentOS WebPanel: Protected by Mod Security
System: Linux sites.annaiservers.com 3.10.0-1160.118.1.el7.x86_64 #1 SMP Wed Apr 24 16:01:50 UTC 2024 x86_64
User: freeval (1012)
PHP: 8.1.10
Disabled: NONE
Upload Files
File: //scripts/stats_goaccess
#!/bin/bash

# Required for servers using other lang
LANG=en_US.UTF-8

domain=$1
username=$2

# Goaccess stats
if [ -e "/usr/bin/goaccess" ];then

	if [ ! -e "/etc/goaccess.conf" ];then
		wget static.cdn-cwp.com/files/3rdparty/stats/goaccess/goaccess.conf -O /etc/goaccess.conf
	fi

	if [ -e "/home/$username" ];then

		if [ ! -e "/home/$username/cwp_stats/goaccess" ];then
			if [ ! -e "/home/$username/cwp_stats" ];then
				mkdir /home/$username/cwp_stats
				test -h "/home/$username/cwp_stats" || chown $username.$username /home/$username/cwp_stats 2> /dev/null 1> /dev/null
			fi

			mkdir /home/$username/cwp_stats/goaccess 2> /dev/null 1> /dev/null
			test -h "/home/$username/cwp_stats/goaccess" || chown $username.$username /home/$username/cwp_stats/goaccess 2> /dev/null 1> /dev/null
		fi

		if [ ! -e "/home/$username/cwp_stats/goaccess/daily" ];then
			mkdir -p /home/$username/cwp_stats/goaccess/daily 2> /dev/null 1> /dev/null
			test -h "/home/$username/cwp_stats/goaccess/daily" || chown $username.$username /home/$username/cwp_stats/goaccess/daily 2> /dev/null 1> /dev/null
		fi
		if [ ! -e "/home/$username/cwp_stats/goaccess/weekly" ];then
			mkdir -p /home/$username/cwp_stats/goaccess/weekly 2> /dev/null 1> /dev/null
			test -h "/home/$username/cwp_stats/goaccess/weekly" || chown $username.$username /home/$username/cwp_stats/goaccess/weekly 2> /dev/null 1> /dev/null
		fi
		if [ ! -e "/home/$username/cwp_stats/goaccess/monthly" ];then
			mkdir -p /home/$username/cwp_stats/goaccess/monthly 2> /dev/null 1> /dev/null
			test -h "/home/$username/cwp_stats/goaccess/monthly" || chown $username.$username /home/$username/cwp_stats/goaccess/monthly 2> /dev/null 1> /dev/null
		fi
		
		if [ -e "/usr/local/apache/domlogs/$domain.log" ];then
			#daily log
			grep "\[`date '+%d/%b/%Y' -d '1 day ago'`" /usr/local/apache/domlogs/"$domain".log | goaccess - --no-progress --output=/home/"$username"/cwp_stats/goaccess/daily/"$domain"_`date +%F -d '1 day ago'`.html -p /etc/goaccess.conf 2> /dev/null 1> /dev/null

			#weekly log
			weekDate=`date +%u`
			if [ "$weekDate" = "7" ];then
				grep "\[`date '+%d/%b/%Y' -d '1 day ago'`\|\[`date '+%d/%b/%Y' -d '2 day ago'`\|\[`date '+%d/%b/%Y' -d '3 day ago'`\|\[`date '+%d/%b/%Y' -d '4 day ago'`\|\[`date '+%d/%b/%Y' -d '5 day ago'`\|\[`date '+%d/%b/%Y' -d '6 day ago'`\|\[`date '+%d/%b/%Y' -d '7 day ago'`" /usr/local/apache/domlogs/"$domain".log | goaccess - --no-progress --output=/home/"$username"/cwp_stats/goaccess/weekly/"$domain"_`date +%F -d '1 day ago'`.html -p /etc/goaccess.conf 2> /dev/null 1> /dev/null
			fi

			#monthly log
			todayDate=`date +%d`
			if [ "$todayDate" = "01" ];then
				grep "`date '+/%b/%Y' -d '1 month ago'`" /usr/local/apache/domlogs/"$domain".log | goaccess - --no-progress --output=/home/"$username"/cwp_stats/goaccess/monthly/"$domain"_`date +%F -d '1 day ago'`.html -p /etc/goaccess.conf 2> /dev/null 1> /dev/null
				# Delete old logs
				SEARCHDATE=`date '+/%b/%Y' -d '2 months ago'`
				sed -i "\@$SEARCHDATE@d" /usr/local/apache/domlogs/"$domain".log 2> /dev/null 1> /dev/null
				sed -i "\@$SEARCHDATE@d" /usr/local/apache/domlogs/"$domain".error.log 2> /dev/null 1> /dev/null

				# Delete old daily stat files
				find /home/"$username"/cwp_stats/goaccess/daily/ -type f -name "*.html" -mtime +45 -exec rm -f {} \; 2> /dev/null 1> /dev/null
				chown $username.$username /home/"$username"/cwp_stats/goaccess/daily/*

				# Delete old weekly stat files
				find /home/"$username"/cwp_stats/goaccess/weekly/ -type f -name "*.html" -mtime +90 -exec rm -f {} \; 2> /dev/null 1> /dev/null
				chown $username.$username /home/"$username"/cwp_stats/goaccess/weekly/*

				# Delete old monthly stat files
				find /home/"$username"/cwp_stats/goaccess/monthly/ -type f -name "*.html" -mtime +365 -exec rm -f {} \; 2> /dev/null 1> /dev/null
				chown $username.$username /home/"$username"/cwp_stats/goaccess/monthly/*
			fi
		fi
		
	fi 
fi