Files
VestaCP/bin/v_update_sys_rrd
2012-04-30 12:32:11 +03:00

138 lines
3.3 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 enviroment as we run this script
# mostly by cron wich do not read it by itself
source /etc/profile.d/vesta.sh
# Includes
source $VESTA/conf/vesta.conf
source $VESTA/func/main.sh
# Another workaround for cron enviroment
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
$BIN/v_update_sys_rrd_net $period
$BIN/v_update_sys_rrd_mem $period
$BIN/v_update_sys_rrd_ssh $period
# Updating web stats
if [ "$WEB_SYSTEM" = 'apache' ]; then
$BIN/v_update_sys_rrd_httpd $period
fi
if [ "$PROXY_SYSTEM" = 'nginx' ]; then
$BIN/v_update_sys_rrd_nginx $period
fi
# Updating ftp stats
if [ ! -z "$FTP_SYSTEM" ] && [ "$FTP_SYSTEM" != 'no' ]; then
$BIN/v_update_sys_rrd_ftp $period
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 ;;
pgsql) $BIN/v_update_sys_rrd_pgsql $period ;;
esac
done
fi
done
#----------------------------------------------------------#
# Vesta #
#----------------------------------------------------------#
# Logging
log_event "$OK" "$EVENT"
exit