diff --git a/bin/v_backup_user b/bin/v_backup_user index f71fe565..135e6512 100755 --- a/bin/v_backup_user +++ b/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 diff --git a/bin/v_list_user_backups b/bin/v_list_user_backups index a212375c..47ed5f39 100755 --- a/bin/v_list_user_backups +++ b/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 diff --git a/bin/v_update_sys_rrd b/bin/v_update_sys_rrd index 0a63b255..56dcc51e 100755 --- a/bin/v_update_sys_rrd +++ b/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,37 +32,100 @@ 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 -$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 +for period in $periods; do -# Updating web stats -if [ "$WEB_SYSTEM" = 'apache' ]; then - $BIN/v_update_sys_rrd_httpd $period -fi + $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 -if [ "$PROXY_SYSTEM" = 'nginx' ]; then - $BIN/v_update_sys_rrd_nginx $period -fi + # Updating web stats + if [ "$WEB_SYSTEM" = 'apache' ]; then + $BIN/v_update_sys_rrd_httpd $period + fi -# Updating ftp stats -if [ ! -z "$FTP_SYSTEM" ] && [ "$FTP_SYSTEM" != 'no' ]; then - $BIN/v_update_sys_rrd_ftp $period -fi + if [ "$PROXY_SYSTEM" = 'nginx' ]; then + $BIN/v_update_sys_rrd_nginx $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 + # 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 # diff --git a/bin/v_update_sys_rrd_ftp b/bin/v_update_sys_rrd_ftp index 5d7b0e54..aa48c68e 100755 --- a/bin/v_update_sys_rrd_ftp +++ b/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' \ diff --git a/bin/v_update_sys_rrd_httpd b/bin/v_update_sys_rrd_httpd index dfa8e649..1080aabc 100755 --- a/bin/v_update_sys_rrd_httpd +++ b/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' \ diff --git a/bin/v_update_sys_rrd_la b/bin/v_update_sys_rrd_la index 187003b9..34733f7c 100755 --- a/bin/v_update_sys_rrd_la +++ b/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 \ diff --git a/bin/v_update_sys_rrd_mem b/bin/v_update_sys_rrd_mem index 5c6cfd02..a4c17987 100755 --- a/bin/v_update_sys_rrd_mem +++ b/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 \ diff --git a/bin/v_update_sys_rrd_mysql b/bin/v_update_sys_rrd_mysql index 025bea99..5348d72a 100755 --- a/bin/v_update_sys_rrd_mysql +++ b/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 \ diff --git a/bin/v_update_sys_rrd_net b/bin/v_update_sys_rrd_net index ba1e0c5c..8e56996f 100755 --- a/bin/v_update_sys_rrd_net +++ b/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 \ diff --git a/bin/v_update_sys_rrd_nginx b/bin/v_update_sys_rrd_nginx index 33ac7a3c..d2139048 100755 --- a/bin/v_update_sys_rrd_nginx +++ b/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' \ diff --git a/bin/v_update_sys_rrd_pgsql b/bin/v_update_sys_rrd_pgsql index cfd54b32..09e8ee0f 100755 --- a/bin/v_update_sys_rrd_pgsql +++ b/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 \ diff --git a/bin/v_update_sys_rrd_ssh b/bin/v_update_sys_rrd_ssh index 6e822fba..18bd203d 100755 --- a/bin/v_update_sys_rrd_ssh +++ b/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' \ diff --git a/func/db.sh b/func/db.sh index 575a3cba..1c7e4daf 100644 --- a/func/db.sh +++ b/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'" diff --git a/func/shared.sh b/func/shared.sh index fad24c42..343b0dfb 100644 --- a/func/shared.sh +++ b/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 }