You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							135 lines
						
					
					
						
							3.3 KiB
						
					
					
				
			
		
		
	
	
							135 lines
						
					
					
						
							3.3 KiB
						
					
					
				#!/bin/bash
 | 
						|
# info: update system rrd charts
 | 
						|
# options: NONE
 | 
						|
#
 | 
						|
# example: v-update-sys-rrd
 | 
						|
#
 | 
						|
# This function is wrapper for all rrd functions. It updates all
 | 
						|
# v-update-sys-rrd_* at once.
 | 
						|
 | 
						|
#----------------------------------------------------------#
 | 
						|
#                Variables & Functions                     #
 | 
						|
#----------------------------------------------------------#
 | 
						|
 | 
						|
# Includes
 | 
						|
# shellcheck source=/etc/hestiacp/hestia.conf
 | 
						|
source /etc/hestiacp/hestia.conf
 | 
						|
# shellcheck source=/usr/local/hestia/func/main.sh
 | 
						|
source $HESTIA/func/main.sh
 | 
						|
# load config file
 | 
						|
source_conf "$HESTIA/conf/hestia.conf"
 | 
						|
 | 
						|
# Checking rrddir
 | 
						|
if [ ! -d "$RRD" ]; then
 | 
						|
	mkdir -p $RRD
 | 
						|
fi
 | 
						|
 | 
						|
#----------------------------------------------------------#
 | 
						|
#                       Action                             #
 | 
						|
#----------------------------------------------------------#
 | 
						|
 | 
						|
# Checking daily period
 | 
						|
if [ -e "$RRD/daily.rrd" ]; then
 | 
						|
	mtime=$(stat -c "%Y" $RRD/daily.rrd)
 | 
						|
	ctime=$(date +%s)
 | 
						|
	dtime=$((ctime - mtime))
 | 
						|
	# Update every 5 minute
 | 
						|
	if [ "$dtime" -gt '290' ]; then
 | 
						|
		touch $RRD/daily.rrd
 | 
						|
		periods="$periods daily"
 | 
						|
	fi
 | 
						|
else
 | 
						|
	touch $RRD/daily.rrd
 | 
						|
	periods="$periods daily"
 | 
						|
fi
 | 
						|
 | 
						|
# Checking weekly period
 | 
						|
if [ -e "$RRD/weekly.rrd" ]; then
 | 
						|
	mtime=$(stat -c "%Y" $RRD/weekly.rrd)
 | 
						|
	ctime=$(date +%s)
 | 
						|
	dtime=$((ctime - mtime))
 | 
						|
	# Update every hour
 | 
						|
	if [ "$dtime" -gt '3590' ]; then
 | 
						|
		touch $RRD/weekly.rrd
 | 
						|
		periods="$periods weekly"
 | 
						|
	fi
 | 
						|
else
 | 
						|
	touch $RRD/weekly.rrd
 | 
						|
	periods="$periods weekly"
 | 
						|
fi
 | 
						|
 | 
						|
# Checking monthly period
 | 
						|
if [ -e "$RRD/monthly.rrd" ]; then
 | 
						|
	mtime=$(stat -c "%Y" $RRD/monthly.rrd)
 | 
						|
	ctime=$(date +%s)
 | 
						|
	dtime=$((ctime - mtime))
 | 
						|
	# Update every 6 hours
 | 
						|
	if [ "$dtime" -gt '21590' ]; then
 | 
						|
		touch $RRD/monthly.rrd
 | 
						|
		periods="$periods monthly"
 | 
						|
	fi
 | 
						|
else
 | 
						|
	touch $RRD/monthly.rrd
 | 
						|
	periods="$periods monthly"
 | 
						|
fi
 | 
						|
 | 
						|
# Checking yearly period
 | 
						|
if [ -e "$RRD/yearly.rrd" ]; then
 | 
						|
	mtime=$(stat -c "%Y" $RRD/yearly.rrd)
 | 
						|
	ctime=$(date +%s)
 | 
						|
	dtime=$((ctime - mtime))
 | 
						|
	# Update every 12 hours
 | 
						|
	if [ "$dtime" -gt '43190' ]; then
 | 
						|
		touch $RRD/yearly.rrd
 | 
						|
		periods="$periods yearly"
 | 
						|
	fi
 | 
						|
else
 | 
						|
	touch $RRD/yearly.rrd
 | 
						|
	periods="$periods yearly"
 | 
						|
fi
 | 
						|
 | 
						|
# Updateing system stats
 | 
						|
for period in $periods; do
 | 
						|
 | 
						|
	$BIN/v-update-sys-rrd-la "$period" > /dev/null 2>&1
 | 
						|
	$BIN/v-update-sys-rrd-net "$period" > /dev/null 2>&1
 | 
						|
	$BIN/v-update-sys-rrd-mem "$period" > /dev/null 2>&1
 | 
						|
	$BIN/v-update-sys-rrd-ssh "$period" > /dev/null 2>&1
 | 
						|
 | 
						|
	# Updating web stats
 | 
						|
	if [ -n "$WEB_SYSTEM" ]; then
 | 
						|
		$BIN/v-update-sys-rrd-$WEB_SYSTEM "$period" > /dev/null 2>&1
 | 
						|
	fi
 | 
						|
 | 
						|
	if [ -n "$PROXY_SYSTEM" ]; then
 | 
						|
		$BIN/v-update-sys-rrd-$PROXY_SYSTEM "$period" > /dev/null 2>&1
 | 
						|
	fi
 | 
						|
 | 
						|
	# Updating mail stats
 | 
						|
	if [ -n "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
 | 
						|
		$BIN/v-update-sys-rrd-mail "$period" > /dev/null 2>&1
 | 
						|
	fi
 | 
						|
 | 
						|
	# Updating ftp stats
 | 
						|
	if [ -n "$FTP_SYSTEM" ] && [ "$FTP_SYSTEM" != 'no' ]; then
 | 
						|
		$BIN/v-update-sys-rrd-ftp "$period" > /dev/null 2>&1
 | 
						|
	fi
 | 
						|
 | 
						|
	# Updating db stats
 | 
						|
	if [ -n "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then
 | 
						|
		for type in ${DB_SYSTEM//,/ }; do
 | 
						|
			# Switching on db type
 | 
						|
			case $type in
 | 
						|
				mysql) $BIN/v-update-sys-rrd-mysql "$period" > /dev/null 2>&1 ;;
 | 
						|
				pgsql) $BIN/v-update-sys-rrd-pgsql "$period" > /dev/null 2>&1 ;;
 | 
						|
			esac
 | 
						|
		done
 | 
						|
	fi
 | 
						|
done
 | 
						|
 | 
						|
#----------------------------------------------------------#
 | 
						|
#                       Hestia                             #
 | 
						|
#----------------------------------------------------------#
 | 
						|
 | 
						|
exit
 |