11#! /bin/bash
22# info: update system rrd charts
3- # options: period
3+ # options: none
44#
55# The script is wrapper for all rrd functions. It updates all
66# v_update_sys_rrd_* at once.
@@ -22,9 +22,6 @@ source $VESTA/func/shared.sh
2222PATH=" $PATH :$BIN "
2323export PATH
2424
25- # Argument defenition
26- period=$1
27-
2825# Checking rrddir
2926if [ ! -d " $RRD " ]; then
3027 mkdir -p $RRD
3532# Action #
3633# ----------------------------------------------------------#
3734
38- # Updateing system stats
39- $BIN /v_update_sys_rrd_la $period
40- $BIN /v_update_sys_rrd_net $period
41- $BIN /v_update_sys_rrd_mem $period
42- $BIN /v_update_sys_rrd_ssh $period
43-
44- # Updating web stats
45- if [ " $WEB_SYSTEM " = ' apache' ]; then
46- $BIN /v_update_sys_rrd_httpd $period
35+ # Checking daily period
36+ if [ -e " $RRD /daily.rrd" ]; then
37+ mtime=$( stat -c " %Y" $RRD /daily.rrd)
38+ ctime=$( date +%s)
39+ dtime=$(( ctime - mtime))
40+ # Update every 5 minute
41+ if [ " $dtime " -gt ' 290' ]; then
42+ touch $RRD /daily.rrd
43+ periods=" $periods daily"
44+ fi
45+ else
46+ touch $RRD /daily.rrd
47+ periods=" $periods daily"
4748fi
4849
49- if [ " $PROXY_SYSTEM " = ' nginx' ]; then
50- $BIN /v_update_sys_rrd_nginx $period
50+ # Checking weekly period
51+ if [ -e " $RRD /weekly.rrd" ]; then
52+ mtime=$( stat -c " %Y" $RRD /weekly.rrd)
53+ ctime=$( date +%s)
54+ dtime=$(( ctime - mtime))
55+ # Update every hour
56+ if [ " $dtime " -gt ' 3590' ]; then
57+ touch $RRD /weekly.rrd
58+ periods=" $periods weekly"
59+ fi
60+ else
61+ touch $RRD /weekly.rrd
62+ periods=" $periods weekly"
5163fi
5264
53- # Updating ftp stats
54- if [ ! -z " $FTP_SYSTEM " ] && [ " $FTP_SYSTEM " != ' no' ]; then
55- $BIN /v_update_sys_rrd_ftp $period
65+ # Checking monthly period
66+ if [ -e " $RRD /monthly.rrd" ]; then
67+ mtime=$( stat -c " %Y" $RRD /monthly.rrd)
68+ ctime=$( date +%s)
69+ dtime=$(( ctime - mtime))
70+ # Update every 6 hours
71+ if [ " $dtime " -gt ' 21590' ]; then
72+ touch $RRD /monthly.rrd
73+ periods=" $periods monthly"
74+ fi
75+ else
76+ touch $RRD /monthly.rrd
77+ periods=" $periods monthly"
5678fi
5779
58- # Updating db stats
59- if [ ! -z " $DB_SYSTEM " ] && [ " $DB_SYSTEM " != ' no' ]; then
60- for type in ${DB_SYSTEM// ,/ } ; do
61- # Switching on db type
62- case $type in
63- mysql) $BIN /v_update_sys_rrd_mysql $period ;;
64- pgsql) $BIN /v_update_sys_rrd_pgsql $period ;;
65- esac
66- done
80+ # Checking yearly period
81+ if [ -e " $RRD /yearly.rrd" ]; then
82+ mtime=$( stat -c " %Y" $RRD /yearly.rrd)
83+ ctime=$( date +%s)
84+ dtime=$(( ctime - mtime))
85+ # Update every 12 hours
86+ if [ " $dtime " -gt ' 43190' ]; then
87+ touch $RRD /yearly.rrd
88+ periods=" $periods yearly"
89+ fi
90+ else
91+ touch $RRD /yearly.rrd
92+ periods=" $periods yearly"
6793fi
6894
6995
96+ # Updateing system stats
97+ for period in $periods ; do
98+
99+ $BIN /v_update_sys_rrd_la $period
100+ $BIN /v_update_sys_rrd_net $period
101+ $BIN /v_update_sys_rrd_mem $period
102+ $BIN /v_update_sys_rrd_ssh $period
103+
104+ # Updating web stats
105+ if [ " $WEB_SYSTEM " = ' apache' ]; then
106+ $BIN /v_update_sys_rrd_httpd $period
107+ fi
108+
109+ if [ " $PROXY_SYSTEM " = ' nginx' ]; then
110+ $BIN /v_update_sys_rrd_nginx $period
111+ fi
112+
113+ # Updating ftp stats
114+ if [ ! -z " $FTP_SYSTEM " ] && [ " $FTP_SYSTEM " != ' no' ]; then
115+ $BIN /v_update_sys_rrd_ftp $period
116+ fi
117+
118+ # Updating db stats
119+ if [ ! -z " $DB_SYSTEM " ] && [ " $DB_SYSTEM " != ' no' ]; then
120+ for type in ${DB_SYSTEM// ,/ } ; do
121+ # Switching on db type
122+ case $type in
123+ mysql) $BIN /v_update_sys_rrd_mysql $period ;;
124+ pgsql) $BIN /v_update_sys_rrd_pgsql $period ;;
125+ esac
126+ done
127+ fi
128+ done
129+
70130# ----------------------------------------------------------#
71131# Vesta #
72132# ----------------------------------------------------------#
0 commit comments