Răsfoiți Sursa

mysql bugfix + updated rrd functions

Serghey Rodin 14 ani în urmă
părinte
comite
46e0bc239b

+ 2 - 3
bin/v_backup_user

@@ -92,7 +92,6 @@ echo
 
 # PAM
 echo "-- PAM --"
-pam='yes'
 mkdir $tmpdir/pam
 echo -e "$(date "+%F %T") passwd / shadow /group"
 grep "^$user:" /etc/passwd > $tmpdir/pam/passwd
@@ -451,15 +450,15 @@ for backup_record in $deprecated; do
 done
 
 # Concatenating string
-backup_str="DATE='$DATE' TIME='$TIME' RUNTIME='$run_time'"
+backup_str="BACKUP='$user.$DATE.tar'"
 backup_str="$backup_str TYPE='$BACKUP_SYSTEM' SIZE='$size'"
 backup_str="$backup_str VESTA='$vst'"
-backup_str="$backup_str PAM='$pam'"
 backup_str="$backup_str WEB='${web_list// /,}'"
 backup_str="$backup_str DNS='${dns_list// /,}'"
 backup_str="$backup_str MAIL='${mail_list// /,}'"
 backup_str="$backup_str DB='${db_list// /,}'"
 backup_str="$backup_str CRON='$cron_list'"
+backup_str="$backup_str RUNTIME='$run_time' TIME='$TIME' DATE='$DATE'"
 echo "$backup_str" >> $USER_DATA/backup.conf
 chmod 660 $USER_DATA/backup.conf
 

+ 4 - 3
bin/v_list_user_backups

@@ -36,14 +36,15 @@ if [ ! -e "$conf" ]; then
 fi
 
 # Defining fileds to select
-fields="\$DATE \$TIME \$RUNTIME \$TYPE \$SIZE \$VESTA \$PAM \$WEB \$DNS \$DB"
-fields="$fields \$MAIL \$CRON"
+fields="\$BACKUP \$TYPE \$SIZE \$VESTA \$PAM \$WEB \$DNS \$DB"
+fields="$fields \$MAIL \$CRON \$RUNTIME \$TIME \$DATE"
 
 # Listing domains
 case $format in 
     json)   json_list ;;
     plain)  nohead=1; shell_list ;;
-    shell)  fields='$DATE $TIME $RUNTIME $TYPE $SIZE'; shell_list |column -t;;
+    shell)  fields='$BACKUP $TYPE $SIZE $RUNTIME $TIME $DATE';
+            shell_list |column -t;;
     *)      check_args '1' '0' '[format]' ;;
 esac
 

+ 87 - 27
bin/v_update_sys_rrd

@@ -1,6 +1,6 @@
 #!/bin/bash
 # info: update system rrd charts
-# options: period
+# options: none
 #
 # The script is wrapper for all rrd functions. It updates all 
 # v_update_sys_rrd_* at once.
@@ -22,9 +22,6 @@ source $VESTA/func/shared.sh
 PATH="$PATH:$BIN"
 export PATH
 
-# Argument defenition
-period=$1
-
 # Checking rrddir
 if [ ! -d "$RRD" ]; then
     mkdir -p $RRD
@@ -35,38 +32,101 @@ fi
 #                       Action                             #
 #----------------------------------------------------------#
 
-# Updateing system stats
-$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
+# 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
 
-if [ "$PROXY_SYSTEM" = 'nginx' ]; then
-    $BIN/v_update_sys_rrd_nginx $period
+# 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
 
-# Updating ftp stats
-if [ ! -z "$FTP_SYSTEM" ] && [ "$FTP_SYSTEM" != 'no' ]; then
-    $BIN/v_update_sys_rrd_ftp $period
+# 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
 
-# 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
+# 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                              #
 #----------------------------------------------------------#

+ 7 - 8
bin/v_update_sys_rrd_ftp

@@ -10,7 +10,6 @@
 #----------------------------------------------------------#
 
 # Argument defenition
-update=$1
 period=${1-daily}
 
 # Includes
@@ -52,7 +51,7 @@ if [ ! -e "$RRD/ftp/ftp.rrd" ]; then
 fi
 
 # Parsing data
-if [ -z "$update" ]; then
+if [ "$period" = 'daily' ]; then
     a=0
     a=$(ps aux |grep $FTP_SYSTEM |grep -v grep| grep -v nobody|\
         grep -v root|wc -l)
@@ -70,14 +69,14 @@ rrdtool graph $RRD/ftp/$period-ftp.png \
     --end "$end" \
     --vertical-label "Connections" \
     --x-grid "$grid" \
-    -c "BACK#484439" \
-    -c "SHADEA#484439" \
-    -c "SHADEB#484439" \
-    -c "FONT#DDDDDD" \
-    -c "CANVAS#202020" \
+    -c "BACK#7a766d" \
+    -c "SHADEA#7a766d" \
+    -c "SHADEB#7a766d" \
+    -c "FONT#FFFFFF" \
+    -c "CANVAS#302c2d" \
     -c "GRID#666666" \
     -c "MGRID#AAAAAA" \
-    -c "FRAME#202020" \
+    -c "FRAME#302c2d" \
     -c "ARROW#FFFFFF" \
     DEF:a=$RRD/ftp/ftp.rrd:A:AVERAGE \
     COMMENT:'\r' \

+ 7 - 8
bin/v_update_sys_rrd_httpd

@@ -10,7 +10,6 @@
 #----------------------------------------------------------#
 
 # Argument defenition
-update=$1
 period=${1-daily}
 
 # Includes
@@ -53,7 +52,7 @@ if [ ! -e "$RRD/web/httpd.rrd" ]; then
 fi
 
 # Parsing data
-if [ -z "$update" ]; then
+if [ "$period" = 'daily' ]; then
     server_status=$(wget -qO-  http://localhost:8081/server-status |\
         grep 'currently being processed'| \
         cut -f 2 -d '>' |\
@@ -76,14 +75,14 @@ rrdtool graph $RRD/web/$period-httpd.png \
     --end "$end" \
     --vertical-label "Connections" \
     --x-grid "$grid" \
-    -c "BACK#484439" \
-    -c "SHADEA#484439" \
-    -c "SHADEB#484439" \
-    -c "FONT#DDDDDD" \
-    -c "CANVAS#202020" \
+    -c "BACK#7a766d" \
+    -c "SHADEA#7a766d" \
+    -c "SHADEB#7a766d" \
+    -c "FONT#FFFFFF" \
+    -c "CANVAS#302c2d" \
     -c "GRID#666666" \
     -c "MGRID#AAAAAA" \
-    -c "FRAME#202020" \
+    -c "FRAME#302c2d" \
     -c "ARROW#FFFFFF" \
     DEF:a=$RRD/web/httpd.rrd:A:AVERAGE \
     COMMENT:'\r' \

+ 7 - 8
bin/v_update_sys_rrd_la

@@ -10,7 +10,6 @@
 #----------------------------------------------------------#
 
 # Argument defenition
-update=$1
 period=${1-daily}
 
 # Includes
@@ -53,7 +52,7 @@ if [ ! -e "$RRD/la/la.rrd" ]; then
 fi
 
 # Parsing data
-if [ -z "$update" ]; then
+if [ "$period" = 'daily' ]; then
     loadavg=$(cat /proc/loadavg )
     la=$(echo "$loadavg"|cut -f 2 -d ' ')
     pr=$(echo "$loadavg"|cut -f 4 -d ' '|cut -f 2 -d /)
@@ -71,14 +70,14 @@ rrdtool graph $RRD/la/$period-la.png \
     --end "$end" \
     --vertical-label "Points" \
     --x-grid "$grid" \
-    -c "BACK#484439" \
-    -c "SHADEA#484439" \
-    -c "SHADEB#484439" \
-    -c "FONT#DDDDDD" \
-    -c "CANVAS#202020" \
+    -c "BACK#7a766d" \
+    -c "SHADEA#7a766d" \
+    -c "SHADEB#7a766d" \
+    -c "FONT#FFFFFF" \
+    -c "CANVAS#302c2d" \
     -c "GRID#666666" \
     -c "MGRID#AAAAAA" \
-    -c "FRAME#202020" \
+    -c "FRAME#484243" \
     -c "ARROW#FFFFFF" \
     DEF:la=$RRD/la/la.rrd:LA:AVERAGE \
     DEF:pr=$RRD/la/la.rrd:PR:AVERAGE \

+ 7 - 8
bin/v_update_sys_rrd_mem

@@ -10,7 +10,6 @@
 #----------------------------------------------------------#
 
 # Argument defenition
-update=$1
 period=${1-daily}
 
 # Includes
@@ -53,7 +52,7 @@ if [ ! -e "$RRD/mem/mem.rrd" ]; then
 fi
 
 # Parsing data
-if [ -z "$update" ]; then
+if [ "$period" = 'daily' ]; then
     mem=$(free -m)
     ram=$(echo "$mem" |awk '{print $3}'|head -n2 |tail -n1)
     swap=$(echo "$mem" |awk '{print $3}'|tail -n1)
@@ -71,14 +70,14 @@ rrdtool graph  $RRD/mem/$period-mem.png \
     --end "$end" \
     --vertical-label "Mbytes" \
     --x-grid "$grid" \
-    -c "BACK#484439" \
-    -c "SHADEA#484439" \
-    -c "SHADEB#484439" \
-    -c "FONT#DDDDDD" \
-    -c "CANVAS#202020" \
+    -c "BACK#7a766d" \
+    -c "SHADEA#7a766d" \
+    -c "SHADEB#7a766d" \
+    -c "FONT#FFFFFF" \
+    -c "CANVAS#302c2d" \
     -c "GRID#666666" \
     -c "MGRID#AAAAAA" \
-    -c "FRAME#202020" \
+    -c "FRAME#302c2d" \
     -c "ARROW#FFFFFF" \
     DEF:ram=$RRD/mem/mem.rrd:RAM:AVERAGE \
     DEF:swap=$RRD/mem/mem.rrd:SWAP:AVERAGE \

+ 7 - 8
bin/v_update_sys_rrd_mysql

@@ -10,7 +10,6 @@
 #----------------------------------------------------------#
 
 # Argument defenition
-update=$1
 period=${1-daily}
 
 # Includes
@@ -68,7 +67,7 @@ for host in $hosts; do
             RRA:MAX:0.5:288:797
     fi
 
-    if [ -z "$update" ]; then
+    if [ "$period" = 'daily' ]; then
         # Defining host credentials
         host_str=$(grep "HOST='$host'" $conf)
         for key in $host_str; do
@@ -107,14 +106,14 @@ for host in $hosts; do
         --end "$end" \
         --vertical-label "Queries" \
         --x-grid "$grid" \
-        -c "BACK#484439" \
-        -c "SHADEA#484439" \
-        -c "SHADEB#484439" \
-        -c "FONT#DDDDDD" \
-        -c "CANVAS#202020" \
+        -c "BACK#7a766d" \
+        -c "SHADEA#7a766d" \
+        -c "SHADEB#7a766d" \
+        -c "FONT#FFFFFF" \
+        -c "CANVAS#302c2d" \
         -c "GRID#666666" \
         -c "MGRID#AAAAAA" \
-        -c "FRAME#202020" \
+        -c "FRAME#302c2d" \
         -c "ARROW#FFFFFF" \
         DEF:a=$RRD/db/mysql_$host.rrd:A:AVERAGE \
         DEF:s=$RRD/db/mysql_$host.rrd:S:AVERAGE \

+ 7 - 8
bin/v_update_sys_rrd_net

@@ -10,7 +10,6 @@
 #----------------------------------------------------------#
 
 # Argument defenition
-update=$1
 period=${1-daily}
 
 # Includes
@@ -62,7 +61,7 @@ for iface in $ifaces; do
     fi
 
     # Parsing device stats
-    if [ -z "$update" ]; then
+    if [ "$period" = 'daily' ]; then
         raw_iface=$(grep "$iface:" /proc/net/dev |sed -e "s/:/ /")
         rx=$(echo "$raw_iface" |awk '{print $2}')
         tx=$(echo "$raw_iface" |awk '{print $10}')
@@ -80,14 +79,14 @@ for iface in $ifaces; do
         --end "$end" \
         --vertical-label "KBytes" \
         --x-grid "$grid" \
-        -c "BACK#484439" \
-        -c "SHADEA#484439" \
-        -c "SHADEB#484439" \
-        -c "FONT#DDDDDD" \
-        -c "CANVAS#202020" \
+        -c "BACK#7a766d" \
+        -c "SHADEA#7a766d" \
+        -c "SHADEB#7a766d" \
+        -c "FONT#FFFFFF" \
+        -c "CANVAS#302c2d" \
         -c "GRID#666666" \
         -c "MGRID#AAAAAA" \
-        -c "FRAME#202020" \
+        -c "FRAME#302c2d" \
         -c "ARROW#FFFFFF" \
         DEF:inoctets=$RRD/net/$iface.rrd:RX:AVERAGE \
         DEF:outoctets=$RRD/net/$iface.rrd:TX:AVERAGE \

+ 7 - 8
bin/v_update_sys_rrd_nginx

@@ -10,7 +10,6 @@
 #----------------------------------------------------------#
 
 # Argument defenition
-update=$1
 period=${1-daily}
 
 # Includes
@@ -52,7 +51,7 @@ if [ ! -e "$RRD/web/nginx.rrd" ]; then
 fi
 
 # Parsing data
-if [ -z "$update" ]; then
+if [ "$period" = 'daily' ]; then
     a=$(wget -qO-  http://localhost:8084/|head -n1|cut -f 3 -d ' ')
 
     # Updating rrd database
@@ -68,14 +67,14 @@ rrdtool graph $RRD/web/$period-nginx.png \
     --end "$end" \
     --vertical-label "Connections" \
     --x-grid "$grid" \
-    -c "BACK#484439" \
-    -c "SHADEA#484439" \
-    -c "SHADEB#484439" \
-    -c "FONT#DDDDDD" \
-    -c "CANVAS#202020" \
+    -c "BACK#7a766d" \
+    -c "SHADEA#7a766d" \
+    -c "SHADEB#7a766d" \
+    -c "FONT#FFFFFF" \
+    -c "CANVAS#302c2d" \
     -c "GRID#666666" \
     -c "MGRID#AAAAAA" \
-    -c "FRAME#202020" \
+    -c "FRAME#302c2d" \
     -c "ARROW#FFFFFF" \
     DEF:a=$RRD/web/nginx.rrd:A:AVERAGE \
     COMMENT:'\r' \

+ 7 - 8
bin/v_update_sys_rrd_pgsql

@@ -10,7 +10,6 @@
 #----------------------------------------------------------#
 
 # Argument defenition
-update=$1
 period=${1-daily}
 
 # Includes
@@ -68,7 +67,7 @@ for host in $hosts; do
             RRA:MAX:0.5:288:797
     fi
 
-    if [ -z "$update" ]; then
+    if [ "$period" = 'daily' ]; then
         # Defining host credentials
         host_str=$(grep "HOST='$host'" $conf)
         for key in $host_str; do
@@ -112,14 +111,14 @@ for host in $hosts; do
         --end "$end" \
         --vertical-label "Queries" \
         --x-grid "$grid" \
-        -c "BACK#484439" \
-        -c "SHADEA#484439" \
-        -c "SHADEB#484439" \
-        -c "FONT#DDDDDD" \
-        -c "CANVAS#202020" \
+        -c "BACK#7a766d" \
+        -c "SHADEA#7a766d" \
+        -c "SHADEB#7a766d" \
+        -c "FONT#FFFFFF" \
+        -c "CANVAS#302c2d" \
         -c "GRID#666666" \
         -c "MGRID#AAAAAA" \
-        -c "FRAME#202020" \
+        -c "FRAME#302c2d" \
         -c "ARROW#FFFFFF" \
         DEF:a=$RRD/db/pgsql_$host.rrd:A:AVERAGE \
         DEF:t=$RRD/db/pgsql_$host.rrd:T:AVERAGE \

+ 7 - 8
bin/v_update_sys_rrd_ssh

@@ -10,7 +10,6 @@
 #----------------------------------------------------------#
 
 # Argument defenition
-update=$1
 period=${1-daily}
 
 # Includes
@@ -52,7 +51,7 @@ if [ ! -e "$RRD/ssh/ssh.rrd" ]; then
 fi
 
 # Parsing data
-if [ -z "$update" ]; then
+if [ "$period" = 'daily' ]; then
     a=0
     a=$(ps auxf|grep sshd |grep -v grep |grep -v '/usr/sbin/'| wc -l)
 
@@ -69,14 +68,14 @@ rrdtool graph $RRD/ssh/$period-ssh.png \
     --end "$end" \
     --vertical-label "Connections" \
     --x-grid "$grid" \
-    -c "BACK#484439" \
-    -c "SHADEA#484439" \
-    -c "SHADEB#484439" \
-    -c "FONT#DDDDDD" \
-    -c "CANVAS#202020" \
+    -c "BACK#7a766d" \
+    -c "SHADEA#7a766d" \
+    -c "SHADEB#7a766d" \
+    -c "FONT#FFFFFF" \
+    -c "CANVAS#302c2d" \
     -c "GRID#666666" \
     -c "MGRID#AAAAAA" \
-    -c "FRAME#202020" \
+    -c "FRAME#302c2d" \
     -c "ARROW#FFFFFF" \
     DEF:a=$RRD/ssh/ssh.rrd:A:AVERAGE \
     COMMENT:'\r' \

+ 1 - 1
func/db.sh

@@ -568,7 +568,7 @@ rebuild_mysql_database() {
     query="CREATE DATABASE $database CHARACTER SET $CHARSET"
     mysql -h $HOST -u $USER -p$PASSWORD -P $PORT -e "$query" &> /dev/null
 
-    query="GRANT ALL ON $database.* TO '$DBUSER'@'*'"
+    query="GRANT ALL ON $database.* TO '$DBUSER'@'%'"
     mysql -h $HOST -u $USER -p$PASSWORD -P $PORT -e "$query" &> /dev/null
 
     query="GRANT ALL ON $database.* TO '$DBUSER'@'localhost'"

+ 2 - 2
func/shared.sh

@@ -431,8 +431,8 @@ sync_cron_jobs() {
         eval $line
         if [ "$SUSPENDED" = 'no' ]; then
             echo "$MIN $HOUR $DAY $MONTH $WDAY $CMD" |\
-                sed -e "s/%quote%/'/g" -e "s/%dots%/:/g" |\
-                    >> /var/spool/cron/$user
+                sed -e "s/%quote%/'/g" -e "s/%dots%/:/g" \
+                >> /var/spool/cron/$user
         fi
     done < $USER_DATA/cron.conf
 }