#!/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