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
			| 
								 
											2 years ago
										 
									 | 
							
								#!/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
							 |