mirror of
https://github.com/serghey-rodin/vesta.git
synced 2026-02-03 04:59:30 +01:00
138 lines
3.3 KiB
Bash
Executable File
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
|