myvesta/bin/v-update-sys-rrd
2016-06-09 16:55:35 +03:00

144 lines
3.6 KiB
Bash
Executable File

#!/bin/bash
# info: update system rrd charts
# options: NONE
#
# The script is wrapper for all rrd functions. It updates all
# v-update-sys-rrd_* at once.
#----------------------------------------------------------#
# Variable&Function #
#----------------------------------------------------------#
# Importing system environment as we run this script
# mostly by cron wich do not read it by itself
source /etc/profile
# Includes
source $VESTA/func/main.sh
source $VESTA/conf/vesta.conf
# Another workaround for cron environment
PATH="$PATH:$BIN"
export PATH
# 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 [ ! -z "$WEB_SYSTEM" ]; then
$BIN/v-update-sys-rrd-$WEB_SYSTEM $period >/dev/null 2>&1
fi
if [ ! -z "$PROXY_SYSTEM" ]; then
$BIN/v-update-sys-rrd-$PROXY_SYSTEM $period >/dev/null 2>&1
fi
# Updating mail stats
if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
$BIN/v-update-sys-rrd-mail $period >/dev/null 2>&1
fi
# Updating ftp stats
if [ ! -z "$FTP_SYSTEM" ] && [ "$FTP_SYSTEM" != 'no' ]; then
$BIN/v-update-sys-rrd-ftp $period >/dev/null 2>&1
fi
# Updating db stats
if [ ! -z "$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
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# No Logging
#log_event "$OK" "$ARGUMENTS"
exit