diff --git a/bin/v_add_sys_ip b/bin/v_add_sys_ip index 0e1d1d625..d846a61ce 100755 --- a/bin/v_add_sys_ip +++ b/bin/v_add_sys_ip @@ -62,7 +62,7 @@ iconf='/etc/sysconfig/network-scripts/ifcfg' rconf='/etc/httpd/conf.d/rpaf.conf' # Adding ip -ifconfig "$iface" "$ip" netmask "$mask" +/sbin/ifconfig "$iface" "$ip" netmask "$mask" # Adding startup script ip_add_startup diff --git a/bin/v_add_sys_user b/bin/v_add_sys_user index 9da65420d..b92ab8c59 100755 --- a/bin/v_add_sys_user +++ b/bin/v_add_sys_user @@ -18,6 +18,18 @@ source $VESTA/conf/vars.conf source $V_CONF/vesta.conf source $V_FUNC/shared.func +is_user_free() { + # Parsing domain values + check_sysuser=$(cut -f 1 -d : /etc/passwd | grep -w "$user" ) + + # Checking result + if [ ! -z "$check_sysuser" ] || [ -e "$V_USERS/$user" ]; then + echo "Error: user $user exist" + log_event 'debug' "$E_EXISTS $V_EVENT" + exit $E_EXISTS + fi +} + #----------------------------------------------------------# # Verifications # diff --git a/bin/v_add_sys_user_reports b/bin/v_add_sys_user_reports index 0d4f25e92..105989e52 100755 --- a/bin/v_add_sys_user_reports +++ b/bin/v_add_sys_user_reports @@ -31,9 +31,6 @@ is_user_valid # Checking user is active is_user_suspended -# Checking reports existance -is_user_key_empty '$REPORTS' - #----------------------------------------------------------# # Action # diff --git a/bin/v_add_web_domain_stat b/bin/v_add_web_domain_stat index 1f6b44f0a..713ea7153 100755 --- a/bin/v_add_web_domain_stat +++ b/bin/v_add_web_domain_stat @@ -30,7 +30,6 @@ format_validation 'user' 'domain' # Checking web system is enabled is_system_enabled 'web' -check_func_result $? # Checking user is_user_valid "$user" diff --git a/bin/v_backup_sys_user b/bin/v_backup_sys_user index ad17abba7..495024c7a 100755 --- a/bin/v_backup_sys_user +++ b/bin/v_backup_sys_user @@ -46,8 +46,8 @@ while [ "$la" -ge "$V_BACKUP_LA_LIMIT" ]; do if [ "$i" -ge "15" ]; then echo "Error: LA is too high" - log_event 'debug' "$E_LOAD_AVERAGE $V_EVENT" - exit $E_LOAD_AVERAGE + log_event 'debug' "$E_LA $V_EVENT" + exit $E_LA fi (( ++i)) @@ -367,8 +367,8 @@ local_backup(){ disk_usage=$(df $V_BACKUP | awk '{print $5}'|tail -n1|cut -f 1 -d '%') if [ "$disk_usage" -ge "$V_BACKUP_DISK_LIMIT" ]; then echo "Error: Not enough disk space" - log_event 'debug' "$E_DISK_SPACE $V_EVENT" - exit $E_DISK_SPACE + log_event 'debug' "$E_DISK $V_EVENT" + exit $E_DISK fi # Creating final tarball @@ -402,8 +402,8 @@ ftp_backup(){ if [ -z "$HOST" ] || [ -z "$USERNAME" ] || [ -z "$PASSWORD" ] ||\ [ -z "$BPATH" ]; then echo "Error: Parsing error" - log_event 'debug' "$E_PARSE_ERROR $V_EVENT" - exit $E_PARSE_ERROR + log_event 'debug' "$E_PARSING $V_EVENT" + exit $E_PARSING fi # Debug info @@ -417,8 +417,8 @@ ftp_backup(){ rm $ftmpdir" if [ ! -z "$(ftpc "$command")" ] ; then echo "Error: FTP error" - log_event 'debug' "$E_FTP_ERROR $V_EVENT" - exit $E_FTP_ERROR + log_event 'debug' "$E_FTP $V_EVENT" + exit $E_FTP fi # Checking retention diff --git a/bin/v_change_sys_ip_owner b/bin/v_change_sys_ip_owner index 4ab3b37d2..d3761a0bf 100755 --- a/bin/v_change_sys_ip_owner +++ b/bin/v_change_sys_ip_owner @@ -6,8 +6,9 @@ #----------------------------------------------------------# # Argument defenition -user=$1 -ip=$2 +ip=$1 +user=$2 + # Importing variables source $VESTA/conf/vars.conf @@ -21,10 +22,10 @@ source $V_FUNC/ip.func #----------------------------------------------------------# # Checking arg number -check_args '2' "$#" 'user ip' +check_args '2' "$#" 'ip user' # Checking argument format -format_validation 'user' 'ip' +format_validation 'ip' 'user' # Checking user is_user_valid diff --git a/bin/v_change_sys_ip_status b/bin/v_change_sys_ip_status index 220768a8e..21795dd0f 100755 --- a/bin/v_change_sys_ip_status +++ b/bin/v_change_sys_ip_status @@ -33,8 +33,8 @@ is_sys_ip_valid current_status=$(get_sys_ip_value '$STATUS') if [ "$ip_status" = "$current_status" ]; then echo "Error: status is already set" - log_event 'debug' "$E_VALUE_EXIST $V_EVENT" - exit $E_VALUE_EXIST + log_event 'debug' "$E_EXISTS $V_EVENT" + exit $E_EXISTS fi # Parsing current ip usage @@ -45,8 +45,8 @@ ip_owner=$(get_sys_ip_value '$OWNER') # Checking condition if [ "$web_domains" -ne '0' ] && [ "$sys_user" != "$ip_owner" ]; then echo "Error: ip is used" - log_event 'debug' "$E_IP_USED $V_EVENT" - exit $E_IP_USED + log_event 'debug' "$E_INUSE $V_EVENT" + exit $E_INUSE fi diff --git a/bin/v_change_sys_user_package b/bin/v_change_sys_user_package index 79b538168..1b0c7f717 100755 --- a/bin/v_change_sys_user_package +++ b/bin/v_change_sys_user_package @@ -14,6 +14,89 @@ source $VESTA/conf/vars.conf source $V_CONF/vesta.conf source $V_FUNC/shared.func +is_package_avalable() { + # Parsing user data + usr_data=$(cat $V_USERS/$user/user.conf) + for key in $usr_data; do + eval ${key%%=*}=${key#*=} + done + + # Clearing vars + WEB_DOMAINS='0' + WEB_SSL='0' + DATABASES='0' + MAIL_DOMAINS='0' + MAIL_BOXES='0' + MAIL_FORWARDERS='0' + DNS_DOMAINS='0' + DISK_QUOTA='0' + BANDWIDTH='0' + + # Parsing package + pkg_data=$(cat $V_PKG/$package.pkg) + for key in $pkg_data; do + eval ${key%%=*}=${key#*=} + done + + # Comparing user data with package + if [ "$WEB_DOMAINS" -lt "$U_WEB_DOMAINS" ] ||\ + [ "$WEB_SSL" -lt "$U_WEB_SSL" ] ||\ + [ "$DATABASES" -lt "$U_DATABASES" ] ||\ + [ "$MAIL_DOMAINS" -lt "$U_MAIL_DOMAINS" ] ||\ + [ "$DNS_DOMAINS" -lt "$U_DNS_DOMAINS" ] ||\ + [ "$DISK_QUOTA" -lt "$U_DISK" ] ||\ + [ "$BANDWIDTH" -lt "$U_BANDWIDTH" ]; then + echo "Error: Upgrade package" + log_event 'debug' "$E_LIMIT $v_log" + exit $E_LIMIT + fi +} + +change_user_package() { + # Parsing user data + usr_data=$(cat $V_USERS/$user/user.conf) + for key in $usr_data; do + eval ${key%%=*}=${key#*=} + done + + # Parsing package + pkg_data=$(cat $V_PKG/$package.pkg) + for key in $pkg_data; do + eval ${key%%=*}=${key#*=} + done + + echo "FNAME='$FNAME' +LNAME='$LNAME' +PACKAGE='$package' +WEB_DOMAINS='$WEB_DOMAINS' +WEB_SSL='$WEB_SSL' +WEB_ALIASES='$WEB_ALIASES' +DATABASES='$DATABASES' +MAIL_DOMAINS='$MAIL_DOMAINS' +MAIL_BOXES='$MAIL_BOXES' +MAIL_FORWARDERS='$MAIL_FORWARDERS' +DNS_DOMAINS='$DNS_DOMAINS' +DISK_QUOTA='$DISK_QUOTA' +BANDWIDTH='$BANDWIDTH' +NS='$NS' +SHELL='$SHELL' +BACKUPS='$BACKUPS' +WEB_TPL='$WEB_TPL' +SUSPENDED='$SUSPENDED' +CONTACT='$CONTACT' +REPORTS='$REPORTS' +IP_OWNED='$IP_OWNED' +U_DIR_DISK='$U_DIR_DISK' +U_DISK='$U_DISK' +U_BANDWIDTH='$U_BANDWIDTH' +U_WEB_DOMAINS='$U_WEB_DOMAINS' +U_WEB_SSL='$U_WEB_SSL' +U_DNS_DOMAINS='$U_DNS_DOMAINS' +U_DATABASES='$U_DATABASES' +U_MAIL_DOMAINS='$U_MAIL_DOMAINS' +DATE='$DATE'" > $V_USERS/$user/user.conf +} + #----------------------------------------------------------# # Verifications # diff --git a/bin/v_change_sys_user_shell b/bin/v_change_sys_user_shell index 187d97db0..d7ee2cea4 100755 --- a/bin/v_change_sys_user_shell +++ b/bin/v_change_sys_user_shell @@ -40,7 +40,7 @@ is_user_suspended update_user_value "$user" '$SHELL' "$shell" # Get shell full path -shell_path=$(get_shell_path) +shell_path=$(/usr/bin/chsh --list-shells | grep -w "$shell" ) # Changing passwd file /usr/bin/chsh -s "$shell_path" "$user" >/dev/null 2>&1 diff --git a/bin/v_check_sys_user_password b/bin/v_check_sys_user_password index 7cfdd0403..9cc67a698 100755 Binary files a/bin/v_check_sys_user_password and b/bin/v_check_sys_user_password differ diff --git a/bin/v_del_sys_ip b/bin/v_del_sys_ip index 856b953ac..419a8970f 100755 --- a/bin/v_del_sys_ip +++ b/bin/v_del_sys_ip @@ -56,7 +56,7 @@ rconf='/etc/httpd/conf.d/rpaf.conf' user="$(get_sys_ip_value '$OWNER')" # Deleting interface -ifconfig "$interface" down +/sbin/ifconfig "$interface" down # Deleting startup script rm -f $iconf-$interface diff --git a/bin/v_del_sys_user_ips b/bin/v_del_sys_user_ips new file mode 100755 index 000000000..a70fab422 --- /dev/null +++ b/bin/v_del_sys_user_ips @@ -0,0 +1,67 @@ +#!/bin/bash +# info: deliting system user ips + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Argument defenition +user=$1 + +# Importing variables +source $VESTA/conf/vars.conf +source $V_CONF/vesta.conf +source $V_FUNC/shared.func +source $V_FUNC/ip.func + + +#----------------------------------------------------------# +# Verifications # +#----------------------------------------------------------# + +# Checking arg number +check_args '1' "$#" 'user' + +# Checking argument format +format_validation 'user' + +# Checking user +is_user_valid + +# Checking user is active +is_user_suspended + +# Checking user vesta +if [ "$user" = 'vesta' ]; then + exit +fi + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +# Parsing user ips +ip_list=$(grep -H "OWNER='$user'" $V_IPS/* | cut -f 1 -d:) + +for ip in $ip_list; do + ip=$(basename $ip) + + # Checking webdomains and users + is_ip_key_empty '$U_WEB_DOMAINS' + is_ip_key_empty '$U_SYS_USERS' + + # Assig ip to main account + update_sys_ip_value '$OWNER' 'vesta' + update_sys_ip_value '$STATUS' 'exclusive' + +done + + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +# Logging +log_event 'system' "$V_EVENT" + +exit diff --git a/bin/v_del_sys_user_reports b/bin/v_del_sys_user_reports index 01bbf3957..647d99d6c 100755 --- a/bin/v_del_sys_user_reports +++ b/bin/v_del_sys_user_reports @@ -31,9 +31,6 @@ is_user_valid # Checking user is active is_user_suspended -# Checking reports existance -is_user_value_exist '$REPORTS' - #----------------------------------------------------------# # Action # diff --git a/bin/v_del_web_domain_alias b/bin/v_del_web_domain_alias index 6766d8f04..a8ddaa592 100755 --- a/bin/v_del_web_domain_alias +++ b/bin/v_del_web_domain_alias @@ -49,8 +49,8 @@ get_web_domain_values check_alias=$(echo ${ALIAS//,/ }|grep -w "$dom_alias") if [ -z "$check_alias" ]; then echo "Error: alias not exist" - log_event 'debug' "$E_DOM_NOTEXIST $V_EVENT" - exit $E_DOM_NOTEXIST + log_event 'debug' "$E_NOTEXIST $V_EVENT" + exit $E_NOTEXIST fi #----------------------------------------------------------# diff --git a/bin/v_list_db_base b/bin/v_list_db_base index 9102ea464..79e15a626 100755 --- a/bin/v_list_db_base +++ b/bin/v_list_db_base @@ -29,9 +29,7 @@ json_list_db() { echo '{' # Parsing key=value - for key in $line; do - eval ${key%%=*}=${key#*=} - done + eval $line # Starting output loop for field in $fields; do @@ -70,9 +68,7 @@ shell_list_db() { line=$(grep "DB='$database'" $conf) # Parsing key=value - for key in $line; do - eval ${key%%=*}=${key#*=} - done + eval $line # Print result line for field in $fields; do diff --git a/bin/v_list_db_host b/bin/v_list_db_host index f1e50fb6c..9e8aee1e4 100755 --- a/bin/v_list_db_host +++ b/bin/v_list_db_host @@ -30,9 +30,7 @@ json_list_dbhost() { echo '{' # Assign key=value - for key in $line; do - eval ${key%%=*}=${key#*=} - done + eval $line # Starting output loop for field in $fields; do @@ -68,9 +66,7 @@ shell_list_dbhost() { line=$(grep "HOST='$host'" $conf) # Parsing key=value - for key in $line; do - eval ${key%%=*}=${key#*=} - done + eval $line # Print result line for field in $fields; do diff --git a/bin/v_list_dns_domain b/bin/v_list_dns_domain index a087b1960..94293bece 100755 --- a/bin/v_list_dns_domain +++ b/bin/v_list_dns_domain @@ -29,9 +29,7 @@ json_list_dns() { IFS=$'\n' # Assing key=value pair - for key in $line; do - eval ${key%%=*}=${key#*=} - done + eval $line # Closing bracket if there already was output if [ -n "$data" ]; then @@ -86,9 +84,7 @@ shell_list_dns() { # New delimeter IFS=$'\n' # Assing key=value pair - for key in $line; do - eval ${key%%=*}=${key#*=} - done + eval $line # Print result eval echo "$fields" | sed -e "s/%quote%/'/g" diff --git a/bin/v_list_dns_template b/bin/v_list_dns_template index 4bb18ff09..2cec9c652 100755 --- a/bin/v_list_dns_template +++ b/bin/v_list_dns_template @@ -42,9 +42,7 @@ json_list_dns() { IFS=$'\n' # Assing key=value pair - for key in $line; do - eval ${key%%=*}=${key#*=} - done + eval $line # Closing bracket if there already was output if [ -n "$data" ]; then @@ -96,12 +94,8 @@ shell_list_dns() { # Reading file line by line while read line ; do - # New delimeter - IFS=$'\n' # Assing key=value pair - for key in $line; do - eval ${key%%=*}=${key#*=} - done + eval $line # Print result eval echo "$fields" | sed -e "s/%quote%/'/g" diff --git a/bin/v_list_sys_cron b/bin/v_list_sys_cron index 486e01d4d..525fc1979 100755 --- a/bin/v_list_sys_cron +++ b/bin/v_list_sys_cron @@ -27,9 +27,7 @@ json_list_cron() { IFS=$'\n' # Assing key=value pair - for key in $line; do - eval ${key%%=*}=${key#*=} - done + eval $line # Closing bracket if there already was output if [ -n "$data" ]; then @@ -81,12 +79,8 @@ shell_list_cron() { # Reading file line by line while read line ; do - # New delimeter - IFS=$'\n' # Assing key=value pair - for key in $line; do - eval ${key%%=*}=${key#*=} - done + eval $line # Print result eval echo "$fields" | sed -e "s/%quote%/'/g" diff --git a/bin/v_list_sys_ip b/bin/v_list_sys_ip index 610460ab9..6cfa1bc63 100755 --- a/bin/v_list_sys_ip +++ b/bin/v_list_sys_ip @@ -25,9 +25,7 @@ json_list_ip() { echo '{' # Assign key=value - for key in $ip_data; do - eval ${key%%=*}=${key#*=} - done + eval $ip_data for field in $fields; do eval value=$field @@ -59,9 +57,7 @@ shell_list_ip() { line=$(cat $V_IPS/$IP) # Assing key=value - for key in $line; do - eval ${key%%=*}=${key#*=} - done + eval $line # Print result line for field in $fields; do diff --git a/bin/v_list_sys_ips b/bin/v_list_sys_ips index b73b4e85a..f98831d23 100755 --- a/bin/v_list_sys_ips +++ b/bin/v_list_sys_ips @@ -26,9 +26,7 @@ json_list_ips() { for IP in $ip_list; do # Assing key=value ip_data=$(cat $V_IPS/$IP) - for key in $ip_data; do - eval ${key%%=*}=${key#*=} - done + eval $ip_data # Closing bracket if there already was output if [ -n "$data" ]; then @@ -83,9 +81,7 @@ shell_list_ips() { ip_data=$(cat $V_IPS/$IP) # Assign key/value config - for key in $ip_data; do - eval ${key%%=*}=${key#*=} - done + eval $ip_data # Print result line eval echo "$fields" diff --git a/bin/v_list_sys_user b/bin/v_list_sys_user index 583bcdc11..18917afa5 100755 --- a/bin/v_list_sys_user +++ b/bin/v_list_sys_user @@ -24,9 +24,7 @@ json_list_user() { echo '{' # Assing key=value - for key in $line; do - eval ${key%%=*}=${key#*=} - done + eval $line # Starting output loop for field in $fields; do @@ -60,9 +58,7 @@ shell_list_user() { line=$(cat $V_USERS/$USER/user.conf) # Parsing key=value - for key in $line; do - eval ${key%%=*}=${key#*=} - done + eval $line # Print result line for field in $fields; do diff --git a/bin/v_list_sys_user_ips b/bin/v_list_sys_user_ips index 891aae0a5..c4428effc 100755 --- a/bin/v_list_sys_user_ips +++ b/bin/v_list_sys_user_ips @@ -32,9 +32,7 @@ json_list_user_ips() { ip_data=$(cat $V_IPS/$IP) # Assing key=value - for key in $ip_data; do - eval ${key%%=*}=${key#*=} - done + eval $ip_data # Closing bracket if there already was output if [ -n "$data" ]; then @@ -93,9 +91,7 @@ shell_list_user_ips() { ip_data=$(cat $V_IPS/$IP) # Assign key/value config - for key in $ip_data; do - eval ${key%%=*}=${key#*=} - done + eval $ip_data # Print result line eval echo "$fields" diff --git a/bin/v_list_sys_user_packages b/bin/v_list_sys_user_packages index 2d70af149..2941a3839 100755 --- a/bin/v_list_sys_user_packages +++ b/bin/v_list_sys_user_packages @@ -24,9 +24,7 @@ json_list_pkgs() { PACKAGE=${package/.pkg/} # Assing key=value pkg_data=$(cat $V_DATA/packages/$package) - for key in $pkg_data; do - eval ${key%%=*}=${key#*=} - done + eval $pkg_data # Closing bracket if there already was output if [ -n "$data" ]; then @@ -69,9 +67,7 @@ shell_list_pkgs() { PACKAGE=${package/.pkg/} # Assign key=value pkg_descr=$(cat $V_DATA/packages/$package) - for key in $pkg_descr; do - eval ${key%%=*}=${key#*=} - done + eval $pkg_descr if [ -z "$nohead" ]; then diff --git a/bin/v_list_sys_users b/bin/v_list_sys_users index 3a75f448d..5b4978087 100755 --- a/bin/v_list_sys_users +++ b/bin/v_list_sys_users @@ -23,9 +23,7 @@ json_list_users() { user_data=$(cat $V_USERS/$USER/user.conf) # Assign key/value config - for key in $user_data; do - eval ${key%%=*}=${key#*=} - done + eval $user_data # Closing bracket if there already was output if [ -n "$data" ]; then @@ -76,9 +74,7 @@ shell_list_users() { user_data=$(cat $V_USERS/$USER/user.conf) # Assign key/value config - for key in $user_data; do - eval ${key%%=*}=${key#*=} - done + eval $user_data eval echo "$fields" done diff --git a/bin/v_list_web_domain b/bin/v_list_web_domain index e749a27ea..44d63a492 100755 --- a/bin/v_list_web_domain +++ b/bin/v_list_web_domain @@ -25,9 +25,7 @@ json_list_domain() { echo '{' # Assing key=value - for key in $line; do - eval ${key%%=*}=${key#*=} - done + eval $line # Starting output loop for field in $fields; do @@ -61,9 +59,7 @@ shell_list_domain() { line=$(grep "DOMAIN='$domain'" $conf) # Parsing key=value - for key in $line; do - eval ${key%%=*}=${key#*=} - done + eval $line # Print result line for field in $fields; do diff --git a/bin/v_suspend_sys_user b/bin/v_suspend_sys_user new file mode 100755 index 000000000..66264979f --- /dev/null +++ b/bin/v_suspend_sys_user @@ -0,0 +1,85 @@ +#!/bin/bash +# info: Suspending sys user + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Argument defenition +user=$1 + +# Importing variables +source $VESTA/conf/vars.conf +source $V_CONF/vesta.conf +source $V_FUNC/shared.func + + +#----------------------------------------------------------# +# Verifications # +#----------------------------------------------------------# + +# Checking arg number +check_args '1' "$#" 'user' + +# Checking argument format +format_validation 'user' + +# Checking user +is_user_valid + +# Checking user status +is_user_suspended + +# Checking user vesta +if [ "$user" = 'vesta' ]; then + exit +fi + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +# Adding '!' in front of the password +/usr/sbin/usermod --lock $user + +# Suspending web domains +if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then + $V_BIN/v_suspend_web_domains $user +fi + +# Suspending dns domains +if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then + $V_BIN/v_suspend_dns_domains $user +fi + +# Suspending mail domains +# TBD + +# Suspending datbabases +if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then + $V_BIN/v_suspend_db_bases $user +fi + +# Suspending cron jobs +if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON_SYSTEM" != 'no' ]; then + $V_BIN/v_suspend_sys_cron_jobs $user +fi + + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +# Adding task to the vesta pipe +restart_schedule 'cron' +restart_schedule 'web' +restart_schedule 'dns' + +# Changing suspend value +update_user_value "$user" '$SUSPENDED' 'yes' + +# Logging +log_event 'system' "$V_EVENT" + +exit diff --git a/bin/v_unsuspend_sys_user b/bin/v_unsuspend_sys_user new file mode 100755 index 000000000..c4fd86cda --- /dev/null +++ b/bin/v_unsuspend_sys_user @@ -0,0 +1,82 @@ +#!/bin/bash +# info: Unsuspending sys user + +#----------------------------------------------------------# +# Variable&Function # +#----------------------------------------------------------# + +# Argument defenition +user=$1 + +# Importing variables +source $VESTA/conf/vars.conf +source $V_CONF/vesta.conf +source $V_FUNC/shared.func + + +#----------------------------------------------------------# +# Verifications # +#----------------------------------------------------------# + +# Checking arg number +check_args '1' "$#" 'user' + +# Checking argument format +format_validation 'user' + +# Checking user +is_user_valid + +# Checking user vesta +if [ "$user" = 'vesta' ]; then + exit +fi + + +#----------------------------------------------------------# +# Action # +#----------------------------------------------------------# + +# Deleting '!' in front of the password +/usr/sbin/usermod --unlock $user + +# Unsuspending web domains +if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then + $V_BIN/v_unsuspend_web_domains $user +fi + +# Unsuspending dns domains +if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then + $V_BIN/v_unsuspend_dns_domains $user +fi + +# Unsuspending mail domains +# TBD + +# Unsuspending datbabases +if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then + $V_BIN/v_unsuspend_db_bases $user +fi + +# Unsuspending cron jobs +if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON_SYSTEM" != 'no' ]; then + $V_BIN/v_unsuspend_sys_cron_jobs $user +fi + + +#----------------------------------------------------------# +# Vesta # +#----------------------------------------------------------# + +# Adding task to the vesta pipe +restart_schedule 'cron' +restart_schedule 'web' +restart_schedule 'dns' + +# Changing suspend value +update_user_value "$user" '$SUSPENDED' 'no' + +# Logging +log_event 'system' "$V_EVENT" + +exit diff --git a/bin/v_upd_sys_rrd b/bin/v_upd_sys_rrd index fd9d45886..73b2e8271 100755 --- a/bin/v_upd_sys_rrd +++ b/bin/v_upd_sys_rrd @@ -19,29 +19,32 @@ source $V_FUNC/shared.func PATH="$PATH:$V_BIN" export PATH +# Argument defenition +period=$1 + #----------------------------------------------------------# # Action # #----------------------------------------------------------# # Updateing system stats -$V_BIN/v_upd_sys_rrd_la -$V_BIN/v_upd_sys_rrd_net -$V_BIN/v_upd_sys_rrd_mem -$V_BIN/v_upd_sys_rrd_ssh +$V_BIN/v_upd_sys_rrd_la $period +$V_BIN/v_upd_sys_rrd_net $period +$V_BIN/v_upd_sys_rrd_mem $period +$V_BIN/v_upd_sys_rrd_ssh $period # Updating web stats if [ "$WEB_SYSTEM" = 'apache' ]; then - $V_BIN/v_upd_sys_rrd_httpd + $V_BIN/v_upd_sys_rrd_httpd $period fi if [ "$PROXY_SYSTEM" = 'nginx' ]; then - $V_BIN/v_upd_sys_rrd_nginx + $V_BIN/v_upd_sys_rrd_nginx $period fi # Updating ftp stats if [ ! -z "$FTP_SYSTEM" ] && [ "$FTP_SYSTEM" != 'no' ]; then - $V_BIN/v_upd_sys_rrd_ftp + $V_BIN/v_upd_sys_rrd_ftp $period fi # Updating db stats @@ -49,8 +52,8 @@ if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then for type in ${DB_SYSTEM//,/ }; do # Switching on db type case $type in - mysql) $V_BIN/v_upd_sys_rrd_mysql ;; - pgsql) $V_BIN/v_upd_sys_rrd_pgsql ;; + mysql) $V_BIN/v_upd_sys_rrd_mysql $period ;; + pgsql) $V_BIN/v_upd_sys_rrd_pgsql $period ;; esac done fi diff --git a/bin/v_upd_sys_rrd_ftp b/bin/v_upd_sys_rrd_ftp index d6873ca94..5f4d612e4 100755 --- a/bin/v_upd_sys_rrd_ftp +++ b/bin/v_upd_sys_rrd_ftp @@ -6,9 +6,8 @@ #----------------------------------------------------------# # Argument defenition -rrd_start=${1--1d} -rrd_end=${2-now} -rrd_grid=${3-MINUTE:30:HOUR:1:HOUR:4:0:%H:%M} +update=$1 +period=${1-daily} # Importing variables source $VESTA/conf/vars.conf @@ -19,6 +18,15 @@ source $V_CONF/vesta.conf # Action # #----------------------------------------------------------# +# Switching on time period +case $period in + daily) start='-1d'; end='now'; grid='MINUTE:30:HOUR:1:HOUR:4:0:%H:%M';; + weekly) start='-7d'; end='now'; grid='HOUR:8:DAY:1:DAY:1:0:%a %d';; + monthly) start='-1m'; end='now'; grid='WEEK:1:WEEK:1:WEEK:1:0:%b %d';; + yearly) start='-1y'; end='now'; grid='MONTH:1:YEAR:1:MONTH:2:2419200:%b';; + *) exit $E_RRD ;; +esac + # Checking directory if [ ! -d "$V_RRD/ftp" ]; then mkdir $V_RRD/ftp @@ -40,7 +48,7 @@ if [ ! -e "$V_RRD/ftp/ftp.rrd" ]; then fi # Parsing data -if [ -z "$1" ]; then +if [ -z "$update" ]; then a=0 a=$(ps aux |grep $FTP_SYSTEM |grep -v grep| grep -v nobody|\ grep -v root|wc -l) @@ -50,15 +58,15 @@ if [ -z "$1" ]; then fi # Updating rrd graph -rrdtool graph $V_RRD/ftp/ftp.png \ +rrdtool graph $V_RRD/ftp/$period-ftp.png \ --imgformat PNG \ --height="120" \ --width="440" \ - --start "$rrd_start" \ - --end "$rrd_end" \ - --title "$(echo $FTP_SYSTEM|tr '[a-z]' '[A-Z]') Usage" \ + --start "$start" \ + --end "$end" \ + --title "$(echo $FTP_SYSTEM|tr '[a-z]' '[A-Z]') Usage ($period)" \ --vertical-label "Connections" \ - --x-grid "$rrd_grid" \ + --x-grid "$grid" \ -c "BACK#484439" \ -c "SHADEA#484439" \ -c "SHADEB#484439" \ @@ -81,7 +89,7 @@ rrdtool graph $V_RRD/ftp/ftp.png \ #----------------------------------------------------------# if [ "$result" -ne 0 ]; then - exit $E_RRD_FAILED + exit $E_RRD fi exit diff --git a/bin/v_upd_sys_rrd_httpd b/bin/v_upd_sys_rrd_httpd index a8a5714e3..4c2a2ba5a 100755 --- a/bin/v_upd_sys_rrd_httpd +++ b/bin/v_upd_sys_rrd_httpd @@ -6,21 +6,27 @@ #----------------------------------------------------------# # Argument defenition -rrd_start=${1--1d} -rrd_end=${2-now} -rrd_grid=${3-MINUTE:30:HOUR:1:HOUR:4:0:%H:%M} +update=$1 +period=${1-daily} # Importing variables source $VESTA/conf/vars.conf -source $V_CONF/vesta.conf -source $V_FUNC/shared.func -source $V_FUNC/domain.func #----------------------------------------------------------# # Action # #----------------------------------------------------------# +# Switching on time period +case $period in + daily) start='-1d'; end='now'; grid='MINUTE:30:HOUR:1:HOUR:4:0:%H:%M';; + weekly) start='-7d'; end='now'; grid='HOUR:8:DAY:1:DAY:1:0:%a %d';; + monthly) start='-1m'; end='now'; grid='WEEK:1:WEEK:1:WEEK:1:0:%b %d';; + yearly) start='-1y'; end='now'; grid='MONTH:1:YEAR:1:MONTH:2:2419200:%b';; + *) exit $E_RRD ;; +esac + + # Checking directory if [ ! -d "$V_RRD/web" ]; then mkdir $V_RRD/web @@ -42,9 +48,8 @@ if [ ! -e "$V_RRD/web/httpd.rrd" ]; then fi # Parsing data -if [ -z "$1" ]; then - web_port=$(get_config_value '$WEB_PORT') - server_status=$(wget -qO- http://localhost:$web_port/server-status |\ +if [ -z "$update" ]; then + server_status=$(wget -qO- http://localhost:$WEB_PORT/server-status |\ grep 'currently being processed'| \ cut -f 2 -d '>' |\ sed 's/requests currently being processed, //' | \ @@ -58,15 +63,15 @@ if [ -z "$1" ]; then fi # Updating rrd graph -rrdtool graph $V_RRD/web/httpd.png \ +rrdtool graph $V_RRD/web/$period-httpd.png \ --imgformat PNG \ --height="120" \ --width="440" \ - --start "$rrd_start" \ - --end "$rrd_end" \ - --title "HTTPD Usage" \ + --start "$start" \ + --end "$end" \ + --title "HTTPD Usage ($period)" \ --vertical-label "Connections" \ - --x-grid "$rrd_grid" \ + --x-grid "$grid" \ -c "BACK#484439" \ -c "SHADEA#484439" \ -c "SHADEB#484439" \ @@ -89,7 +94,7 @@ rrdtool graph $V_RRD/web/httpd.png \ #----------------------------------------------------------# if [ "$result" -ne 0 ]; then - exit $E_RRD_FAILED + exit $E_RRD fi exit diff --git a/bin/v_upd_sys_rrd_la b/bin/v_upd_sys_rrd_la index be19ddd21..ea4f29c55 100755 --- a/bin/v_upd_sys_rrd_la +++ b/bin/v_upd_sys_rrd_la @@ -6,19 +6,26 @@ #----------------------------------------------------------# # Argument defenition -rrd_start=${1--1d} -rrd_end=${2-now} -rrd_grid=${3-MINUTE:30:HOUR:1:HOUR:4:0:%H:%M} +update=$1 +period=${1-daily} # Importing variables source $VESTA/conf/vars.conf -source $V_CONF/vesta.conf #----------------------------------------------------------# # Action # #----------------------------------------------------------# +# Switching on time period +case $period in + daily) start='-1d'; end='now'; grid='MINUTE:30:HOUR:1:HOUR:4:0:%H:%M';; + weekly) start='-7d'; end='now'; grid='HOUR:8:DAY:1:DAY:1:0:%a %d';; + monthly) start='-1m'; end='now'; grid='WEEK:1:WEEK:1:WEEK:1:0:%b %d';; + yearly) start='-1y'; end='now'; grid='MONTH:1:YEAR:1:MONTH:2:2419200:%b';; + *) exit $E_RRD ;; +esac + # Checking directory if [ ! -d "$V_RRD/la" ]; then mkdir $V_RRD/la @@ -41,7 +48,7 @@ if [ ! -e "$V_RRD/la/la.rrd" ]; then fi # Parsing data -if [ -z "$1" ]; then +if [ -z "$update" ]; then loadavg=$(cat /proc/loadavg ) la=$(echo "$loadavg"|cut -f 2 -d ' ') pr=$(echo "$loadavg"|cut -f 4 -d ' '|cut -f 2 -d /) @@ -51,15 +58,15 @@ if [ -z "$1" ]; then fi # Updating graph -rrdtool graph $V_RRD/la/la.png \ +rrdtool graph $V_RRD/la/$period-la.png \ --imgformat PNG \ --height="120" \ --width="440" \ - --start "$rrd_start" \ - --end "$rrd_end" \ - --title "Load Average" \ + --start "$start" \ + --end "$end" \ + --title "Load Average ($period)" \ --vertical-label "Points" \ - --x-grid "$rrd_grid" \ + --x-grid "$grid" \ -c "BACK#484439" \ -c "SHADEA#484439" \ -c "SHADEB#484439" \ @@ -87,7 +94,7 @@ rrdtool graph $V_RRD/la/la.png \ #----------------------------------------------------------# if [ "$result" -ne 0 ]; then - exit $E_RRD_FAILED + exit $E_RRD fi exit diff --git a/bin/v_upd_sys_rrd_mem b/bin/v_upd_sys_rrd_mem index 12356b910..d929aaf27 100755 --- a/bin/v_upd_sys_rrd_mem +++ b/bin/v_upd_sys_rrd_mem @@ -6,19 +6,26 @@ #----------------------------------------------------------# # Argument defenition -rrd_start=${1--1d} -rrd_end=${2-now} -rrd_grid=${3-MINUTE:30:HOUR:1:HOUR:4:0:%H:%M} +update=$1 +period=${1-daily} # Importing variables source $VESTA/conf/vars.conf -source $V_CONF/vesta.conf #----------------------------------------------------------# # Action # #----------------------------------------------------------# +# Switching on time period +case $period in + daily) start='-1d'; end='now'; grid='MINUTE:30:HOUR:1:HOUR:4:0:%H:%M';; + weekly) start='-7d'; end='now'; grid='HOUR:8:DAY:1:DAY:1:0:%a %d';; + monthly) start='-1m'; end='now'; grid='WEEK:1:WEEK:1:WEEK:1:0:%b %d';; + yearly) start='-1y'; end='now'; grid='MONTH:1:YEAR:1:MONTH:2:2419200:%b';; + *) exit $E_RRD ;; +esac + # Checking directory if [ ! -d "$V_RRD/mem" ]; then mkdir $V_RRD/mem @@ -41,7 +48,7 @@ if [ ! -e "$V_RRD/mem/mem.rrd" ]; then fi # Parsing data -if [ -z "$1" ]; then +if [ -z "$update" ]; then mem=$(free -m) ram=$(echo "$mem" |awk '{print $3}'|head -n2 |tail -n1) swap=$(echo "$mem" |awk '{print $3}'|tail -n1) @@ -51,15 +58,15 @@ if [ -z "$1" ]; then fi # Updating rrd graph -rrdtool graph $V_RRD/mem/mem.png \ +rrdtool graph $V_RRD/mem/$period-mem.png \ --imgformat PNG \ --height="120" \ --width="440" \ - --start "$rrd_start" \ - --end "$rrd_end" \ - --title "Memory Usage" \ + --start "$start" \ + --end "$end" \ + --title "Memory Usage ($period)" \ --vertical-label "Mbytes" \ - --x-grid "$rrd_grid" \ + --x-grid "$grid" \ -c "BACK#484439" \ -c "SHADEA#484439" \ -c "SHADEB#484439" \ @@ -87,7 +94,7 @@ rrdtool graph $V_RRD/mem/mem.png \ #----------------------------------------------------------# if [ "$result" -ne 0 ]; then - exit $E_RRD_FAILED + exit $E_RRD fi exit diff --git a/bin/v_upd_sys_rrd_mysql b/bin/v_upd_sys_rrd_mysql index 144410789..d8b0fa884 100755 --- a/bin/v_upd_sys_rrd_mysql +++ b/bin/v_upd_sys_rrd_mysql @@ -6,21 +6,27 @@ #----------------------------------------------------------# # Argument defenition -rrd_start=${1--1d} -rrd_end=${2-now} -rrd_grid=${3-MINUTE:30:HOUR:1:HOUR:4:0:%H:%M} +update=$1 +period=${1-daily} # Importing variables source $VESTA/conf/vars.conf -source $V_CONF/vesta.conf source $V_FUNC/shared.func -source $V_FUNC/db.func #----------------------------------------------------------# # Action # #----------------------------------------------------------# +# Switching on time period +case $period in + daily) start='-1d'; end='now'; grid='MINUTE:30:HOUR:1:HOUR:4:0:%H:%M';; + weekly) start='-7d'; end='now'; grid='HOUR:8:DAY:1:DAY:1:0:%a %d';; + monthly) start='-1m'; end='now'; grid='WEEK:1:WEEK:1:WEEK:1:0:%b %d';; + yearly) start='-1y'; end='now'; grid='MONTH:1:YEAR:1:MONTH:2:2419200:%b';; + *) exit $E_RRD ;; +esac + # Checking directory if [ ! -d "$V_RRD/db" ]; then mkdir $V_RRD/db @@ -58,7 +64,7 @@ for host in $hosts; do RRA:MAX:0.5:288:797 fi - if [ -z "$1" ]; then + if [ -z "$update" ]; then # Defining host credentials host_str=$(grep "HOST='$host'" $conf) for key in $host_str; do @@ -70,8 +76,8 @@ for host in $hosts; do if [ -z $HOST ] || [ -z $USER ] || [ -z $PASSWORD ] || [ -z $PORT ] then echo "Error: config is broken" - log_event 'debug' "$E_PARSE_ERROR $V_EVENT" - exit $E_PARSE_ERROR + log_event 'debug' "$E_PARSING $V_EVENT" + exit $E_PARSING fi # Parsing data @@ -89,15 +95,15 @@ for host in $hosts; do fi # Updating daily graph - rrdtool graph $V_RRD/db/mysql_$host.png \ + rrdtool graph $V_RRD/db/$period-mysql_$host.png \ --imgformat PNG \ --height="120" \ --width="440" \ - --start "$rrd_start" \ - --end "$rrd_end" \ - --title "MySQL Usage on $host" \ + --start "$start" \ + --end "$end" \ + --title "MySQL Usage on $host ($period)" \ --vertical-label "Queries" \ - --x-grid "$rrd_grid" \ + --x-grid "$grid" \ -c "BACK#484439" \ -c "SHADEA#484439" \ -c "SHADEB#484439" \ @@ -120,7 +126,7 @@ for host in $hosts; do GPRINT:s:'MAX:Max\:''%8.0lf\j' >/dev/null 2>/dev/null; result=$? if [ "$result" -ne 0 ]; then - exit $E_RRD_FAILED + exit $E_RRD fi done diff --git a/bin/v_upd_sys_rrd_net b/bin/v_upd_sys_rrd_net index 7ca46a300..8831976c0 100755 --- a/bin/v_upd_sys_rrd_net +++ b/bin/v_upd_sys_rrd_net @@ -6,19 +6,26 @@ #----------------------------------------------------------# # Argument defenition -rrd_start=${1--1d} -rrd_end=${2-now} -rrd_grid=${3-MINUTE:30:HOUR:1:HOUR:4:0:%H:%M} +update=$1 +period=${1-daily} # Importing variables source $VESTA/conf/vars.conf -source $V_CONF/vesta.conf #----------------------------------------------------------# # Action # #----------------------------------------------------------# +# Switching on time period +case $period in + daily) start='-1d'; end='now'; grid='MINUTE:30:HOUR:1:HOUR:4:0:%H:%M';; + weekly) start='-7d'; end='now'; grid='HOUR:8:DAY:1:DAY:1:0:%a %d';; + monthly) start='-1m'; end='now'; grid='WEEK:1:WEEK:1:WEEK:1:0:%b %d';; + yearly) start='-1y'; end='now'; grid='MONTH:1:YEAR:1:MONTH:2:2419200:%b';; + *) exit $E_RRD ;; +esac + # Checking directory if [ ! -d "$V_RRD/net" ]; then mkdir $V_RRD/net @@ -50,7 +57,7 @@ for iface in $ifaces; do fi # Parsing device stats - if [ -z "$1" ]; then + if [ -z "$update" ]; 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}') @@ -60,15 +67,15 @@ for iface in $ifaces; do fi # Updating rrd graph - rrdtool graph $V_RRD/net/$iface.png \ + rrdtool graph $V_RRD/net/$period-$iface.png \ --imgformat PNG \ --height="120" \ --width="440" \ - --start "$rrd_start" \ - --end "$rrd_end" \ - --title "Bandwidth Usage $iface" \ + --start "$start" \ + --end "$end" \ + --title "Bandwidth Usage $iface ($period)" \ --vertical-label "KBytes" \ - --x-grid "$rrd_grid" \ + --x-grid "$grid" \ -c "BACK#484439" \ -c "SHADEA#484439" \ -c "SHADEB#484439" \ @@ -93,7 +100,7 @@ for iface in $ifaces; do GPRINT:out:'MAX:Max\:''%8.0lf\j' >/dev/null 2>/dev/null; result=$? if [ "$result" -ne 0 ]; then - exit $E_RRD_FAILED + exit $E_RRD fi done diff --git a/bin/v_upd_sys_rrd_nginx b/bin/v_upd_sys_rrd_nginx index 1833a5e0f..c45b0c764 100755 --- a/bin/v_upd_sys_rrd_nginx +++ b/bin/v_upd_sys_rrd_nginx @@ -6,19 +6,26 @@ #----------------------------------------------------------# # Argument defenition -rrd_start=${1--1d} -rrd_end=${2-now} -rrd_grid=${3-MINUTE:30:HOUR:1:HOUR:4:0:%H:%M} +update=$1 +period=${1-daily} # Importing variables source $VESTA/conf/vars.conf -source $V_CONF/vesta.conf #----------------------------------------------------------# # Action # #----------------------------------------------------------# +# Switching on time period +case $period in + daily) start='-1d'; end='now'; grid='MINUTE:30:HOUR:1:HOUR:4:0:%H:%M';; + weekly) start='-7d'; end='now'; grid='HOUR:8:DAY:1:DAY:1:0:%a %d';; + monthly) start='-1m'; end='now'; grid='WEEK:1:WEEK:1:WEEK:1:0:%b %d';; + yearly) start='-1y'; end='now'; grid='MONTH:1:YEAR:1:MONTH:2:2419200:%b';; + *) exit $E_RRD ;; +esac + # Checking directory if [ ! -d "$V_RRD/web" ]; then mkdir $V_RRD/web @@ -40,7 +47,7 @@ if [ ! -e "$V_RRD/web/nginx.rrd" ]; then fi # Parsing data -if [ -z "$1" ]; then +if [ -z "$update" ]; then a=$(wget -qO- http://localhost:8084/|head -n1|cut -f 3 -d ' ') # Updating rrd database @@ -48,15 +55,15 @@ if [ -z "$1" ]; then fi # Updating rrd graph -rrdtool graph $V_RRD/web/nginx.png \ +rrdtool graph $V_RRD/web/$period-nginx.png \ --imgformat PNG \ --height="120" \ --width="440" \ - --start "$rrd_start" \ - --end "$rrd_end" \ - --title "NGINX Usage" \ + --start "$start" \ + --end "$end" \ + --title "NGINX Usage ($period)" \ --vertical-label "Connections" \ - --x-grid "$rrd_grid" \ + --x-grid "$grid" \ -c "BACK#484439" \ -c "SHADEA#484439" \ -c "SHADEB#484439" \ @@ -79,7 +86,7 @@ rrdtool graph $V_RRD/web/nginx.png \ #----------------------------------------------------------# if [ "$result" -ne 0 ]; then - exit $E_RRD_FAILED + exit $E_RRD fi exit diff --git a/bin/v_upd_sys_rrd_pgsql b/bin/v_upd_sys_rrd_pgsql index abab6e379..78099190d 100755 --- a/bin/v_upd_sys_rrd_pgsql +++ b/bin/v_upd_sys_rrd_pgsql @@ -6,21 +6,27 @@ #----------------------------------------------------------# # Argument defenition -rrd_start=${1--1d} -rrd_end=${2-now} -rrd_grid=${3-MINUTE:30:HOUR:1:HOUR:4:0:%H:%M} +update=$1 +period=${1-daily} # Importing variables source $VESTA/conf/vars.conf -source $V_CONF/vesta.conf source $V_FUNC/shared.func -source $V_FUNC/db.func #----------------------------------------------------------# # Action # #----------------------------------------------------------# +# Switching on time period +case $period in + daily) start='-1d'; end='now'; grid='MINUTE:30:HOUR:1:HOUR:4:0:%H:%M';; + weekly) start='-7d'; end='now'; grid='HOUR:8:DAY:1:DAY:1:0:%a %d';; + monthly) start='-1m'; end='now'; grid='WEEK:1:WEEK:1:WEEK:1:0:%b %d';; + yearly) start='-1y'; end='now'; grid='MONTH:1:YEAR:1:MONTH:2:2419200:%b';; + *) exit $E_RRD ;; +esac + # Checking directory if [ ! -d "$V_RRD/db" ]; then mkdir $V_RRD/db @@ -58,7 +64,7 @@ for host in $hosts; do RRA:MAX:0.5:288:797 fi - if [ -z "$1" ]; then + if [ -z "$update" ]; then # Defining host credentials host_str=$(grep "HOST='$host'" $conf) for key in $host_str; do @@ -72,8 +78,8 @@ for host in $hosts; do if [ -z $HOST ] || [ -z $USER ] || [ -z $PASSWORD ] || [ -z $TPL ] then echo "Error: config is broken" - log_event 'debug' "$E_PARSE_ERROR $V_EVENT" - exit $E_PARSE_ERROR + log_event 'debug' "$E_PARSING $V_EVENT" + exit $E_PARSING fi @@ -95,15 +101,15 @@ for host in $hosts; do fi # Updating rrd graph - rrdtool graph $V_RRD/db/pgsql_$host.png \ + rrdtool graph $V_RRD/db/$period-pgsql_$host.png \ --imgformat PNG \ --height="120" \ --width="440" \ - --start "$rrd_start" \ - --end "$rrd_end" \ - --title "PostgreSQL Usage on $host" \ + --start "$start" \ + --end "$end" \ + --title "PostgreSQL Usage on $host ($period)" \ --vertical-label "Queries" \ - --x-grid "$rrd_grid" \ + --x-grid "$grid" \ -c "BACK#484439" \ -c "SHADEA#484439" \ -c "SHADEB#484439" \ @@ -126,7 +132,7 @@ for host in $hosts; do GPRINT:t:'MAX:Max\:''%8.0lf\j' >/dev/null 2>/dev/null; result=$? if [ "$result" -ne 0 ]; then - exit $E_RRD_FAILED + exit $E_RRD fi done diff --git a/bin/v_upd_sys_rrd_ssh b/bin/v_upd_sys_rrd_ssh index 6c61ba944..96494558a 100755 --- a/bin/v_upd_sys_rrd_ssh +++ b/bin/v_upd_sys_rrd_ssh @@ -6,19 +6,26 @@ #----------------------------------------------------------# # Argument defenition -rrd_start=${1--1d} -rrd_end=${2-now} -rrd_grid=${3-MINUTE:30:HOUR:1:HOUR:4:0:%H:%M} +update=$1 +period=${1-daily} # Importing variables source $VESTA/conf/vars.conf -source $V_CONF/vesta.conf #----------------------------------------------------------# # Action # #----------------------------------------------------------# +# Switching on time period +case $period in + daily) start='-1d'; end='now'; grid='MINUTE:30:HOUR:1:HOUR:4:0:%H:%M';; + weekly) start='-7d'; end='now'; grid='HOUR:8:DAY:1:DAY:1:0:%a %d';; + monthly) start='-1m'; end='now'; grid='WEEK:1:WEEK:1:WEEK:1:0:%b %d';; + yearly) start='-1y'; end='now'; grid='MONTH:1:YEAR:1:MONTH:2:2419200:%b';; + *) exit $E_RRD ;; +esac + # Checking directory if [ ! -d "$V_RRD/ssh" ]; then mkdir $V_RRD/ssh @@ -40,7 +47,7 @@ if [ ! -e "$V_RRD/ssh/ssh.rrd" ]; then fi # Parsing data -if [ -z "$1" ]; then +if [ -z "$update" ]; then a=0 a=$(ps auxf|grep sshd |grep -v grep |grep -v '/usr/sbin/'| wc -l) @@ -49,15 +56,15 @@ if [ -z "$1" ]; then fi # Updating daily graph -rrdtool graph $V_RRD/ssh/ssh.png \ +rrdtool graph $V_RRD/ssh/$period-ssh.png \ --imgformat PNG \ --height="120" \ --width="440" \ - --start "$rrd_start" \ - --end "$rrd_end" \ + --start "$start" \ + --end "$end" \ --title "SSH Usage" \ - --vertical-label "Connections" \ - --x-grid "$rrd_grid" \ + --vertical-label "Connections ($period)" \ + --x-grid "$grid" \ -c "BACK#484439" \ -c "SHADEA#484439" \ -c "SHADEB#484439" \ @@ -80,7 +87,7 @@ rrdtool graph $V_RRD/ssh/ssh.png \ #----------------------------------------------------------# if [ "$result" -ne 0 ]; then - exit $E_RRD_FAILED + exit $E_RRD fi exit diff --git a/bin/v_upd_sys_user_backups b/bin/v_upd_sys_user_backups index 0d70fe1dd..6b2da7b93 100755 --- a/bin/v_upd_sys_user_backups +++ b/bin/v_upd_sys_user_backups @@ -158,8 +158,8 @@ init_ftp_variables() { if [ -z "$HOST" ] || [ -z "$USERNAME" ] || [ -z "$PASSWORD" ] ||\ [ -z "$BPATH" ]; then echo "Error: Parsing error" - log_event 'debug' "$E_PARSE_ERROR $V_EVENT" - exit $E_PARSE_ERROR + log_event 'debug' "$E_PARSING $V_EVENT" + exit $E_PARSING fi } @@ -171,8 +171,8 @@ check_ftp_connection(){ rm $ftmpdir" if [ ! -z "$(ftpc "$command")" ] ; then echo "Error: FTP error" - log_event 'debug' "$E_FTP_ERROR $V_EVENT" - exit $E_FTP_ERROR + log_event 'debug' "$E_FTP $V_EVENT" + exit $E_FTP fi } @@ -197,8 +197,8 @@ is_user_valid # Checking load averages la=$(cat /proc/loadavg |cut -f 1 -d ' '|cut -f 1 -d '.') if [ "$la" -ge "$V_BACKUP_LA_LIMIT" ]; then - log_event 'debug' "$E_LOAD_AVERAGE $V_EVENT" - exit $E_LOAD_AVERAGE + log_event 'debug' "$E_LA $V_EVENT" + exit $E_LA fi @@ -232,8 +232,8 @@ if [ "$type" = 'ftp' ]; then cd $tmpdir if [ ! -z "$(ftpc "get $backup")" ]; then echo "Error: FTP transfer error" - log_event 'debug' "$E_FTP_ERROR $V_EVENT" - exit $E_FTP_ERROR + log_event 'debug' "$E_FTP $V_EVENT" + exit $E_FTP fi get_backup_info $tmpdir/$backup $type >> $tmp_file rm -f $tmpdir/$backup @@ -259,8 +259,8 @@ if [ "$type" = 'ftp,local' ] || [ "$type" = 'local,ftp' ]; then cd $tmpdir if [ ! -z "$(ftpc "get $backup")" ]; then echo "Error: FTP transfer error" - log_event 'debug' "$E_FTP_ERROR $V_EVENT" - exit $E_FTP_ERROR + log_event 'debug' "$E_FTP $V_EVENT" + exit $E_FTP fi get_backup_info $tmpdir/$backup ftp >> $tmp_file rm -f $tmpdir/$backup diff --git a/bin/v_upd_sys_vesta b/bin/v_upd_sys_vesta index 1cb0e7fc0..32a1529e4 100755 --- a/bin/v_upd_sys_vesta +++ b/bin/v_upd_sys_vesta @@ -43,8 +43,8 @@ if [ "$version" != "$VERSION" ]; then # Checking download result if [ "$?" -ne "0" ]; then echo "Error: version tree update failed" - log_event 'debug' "$E_UPD_FAILED $V_EVENT" - exit $E_UPD_FAILED + log_event 'debug' "$E_UPDATE $V_EVENT" + exit $E_UPDATE fi # Deviding version @@ -89,8 +89,8 @@ if [ "$version" != "$VERSION" ]; then # Checking download result if [ "$?" -ne "0" ]; then echo "Error: version tree update failed" - log_event 'debug' "$E_UPD_FAILED $V_EVENT" - exit $E_UPD_FAILED + log_event 'debug' "$E_UPDATE $V_EVENT" + exit $E_UPDATE fi bash $V_BIN/updates/$update.sh done diff --git a/bin/v_upd_web_domain_stat b/bin/v_upd_web_domain_stat index fe7c2c362..80ac30ffc 100755 --- a/bin/v_upd_web_domain_stat +++ b/bin/v_upd_web_domain_stat @@ -53,8 +53,8 @@ stats=$(get_web_domain_value '$STATS') config="$V_HOME/$user/conf/$stats.$domain.conf" if [ ! -e "$config" ]; then echo "Error: Parsing error" - log_event 'debug' "$E_PARSE_ERROR $V_EVENT" - exit $E_PARSE_ERROR + log_event 'debug' "$E_PARSING $V_EVENT" + exit $E_PARSING fi # Checking statistics directory diff --git a/conf/vars.conf b/conf/vars.conf index b8c606297..9050b6801 100644 --- a/conf/vars.conf +++ b/conf/vars.conf @@ -1,145 +1,54 @@ -############################################################# -# # -# This file contains vesta global variable defenitions # -# # -############################################################# - # Paths -VESTA='/usr/local/vesta' -V_BIN="$VESTA/bin" -V_FUNC="$VESTA/func" -V_CONF="$VESTA/conf" -V_DATA="$VESTA/data" -V_LOG="$VESTA/log" -V_SRC="$VESTA/src" -V_PKG="$V_DATA/packages" -V_USERS="$V_DATA/users" -V_DB="$VESTA/conf" -V_QUEUE="$V_DATA/queue" -V_IPS="$V_DATA/ips" -V_WEBTPL="$V_DATA/templates" -V_DNSTPL="$V_WEBTPL/dns" +VESTA=/usr/local/vesta +V_BIN=$VESTA/bin +V_FUNC=$VESTA/func +V_CONF=$VESTA/conf +V_DATA=$VESTA/data +V_LOG=$VESTA/log +V_SRC=$VESTA/src +V_PKG=$V_DATA/packages +V_USERS=$V_DATA/users +V_DB=$V_CONF +V_QUEUE=$V_DATA/queue +V_IPS=$V_DATA/ips +V_WEBTPL=$V_DATA/templates +V_DNSTPL=$V_WEBTPL/dns V_LOCK=/var/lock/vesta -V_HOME='/home' -V_TMP='/tmp' -V_BACKUP='/backup' +V_HOME=/home +V_TMP=/tmp +V_BACKUP=/backup +V_WEB=$VESTA/web +V_RRD=$V_WEB/rrd # Other vars -V_BACKUP_GZIP='5' -V_SUSPEND_URL='vestacp.com/faq/acc_suspended/' +V_BACKUP_GZIP=5 +V_BACKUP_DISK_LIMIT=95 +V_BACKUP_LA_LIMIT=5 +V_SUSPEND_URL=vestacp.com/error/suspend/ V_SCRIPT=$(basename $0) -V_EVENT="$(date +%m-%d-%y" "%H:%m:%S) $V_SCRIPT $*" -V_DATE=$(date +%m-%d-%y) +V_EVENT="$(date '+%F %T') $V_SCRIPT $*" +V_DATE=$(date +%F) V_UPD_HOST=yum.vestacp.com +V_RRD_STEP=300 +V_RRD_IFACE_EXCLUDE=lo # Return codes -OK=0 -ERROR=1 -E_BAD_CMD=2 -E_BAD_ARGS=3 -E_BAD_STATUS=4 -E_BAD_TYPE=5 -E_BAD_FORMAT=6 -E_PARSE_ERROR=7 -E_STR_NOTFOUND=8 -E_OUTOFRANGE=9 -E_WEB_ENABLED=10 -E_WEB_DISABLED=11 -E_MAIL_ENABLED=12 -E_MAIL_DISABLED=13 -E_DNS_ENABLED=14 -E_DNS_DISABLED=15 -E_DB_ENABLED=16 -E_DB_DISABLED=17 -E_IM_ENABLED=18 -E_IM_DISABLED=19 -E_USER_EXIST=20 -E_USER_NOTEXIST=21 -E_USER_BADSTATUS=22 -E_USER_SUSPENDED=23 -E_USER_UNSUSPENDED=24 -E_USER_UNKNOWN=25 -E_DOM_EXIST=30 -E_DOM_NOTEXIST=31 -E_DOM_ADDED=32 -E_DOM_NOTADDED=33 -E_DOM_SUSPENDED=34 -E_DOM_UNSUSPENDED=35 -E_DOM_OWNED=36 -E_DOM_NOTOWNED=37 -E_DOM_ISALIAS=38 -E_DOM_NOTALIAS=39 -E_IP_EXIST=40 -E_IP_NOTEXIST=41 -E_IP_USED=42 -E_IP_UNUSED=33 -E_IP_OWNED=34 -E_IP_NOTOWNED=35 -E_QUOTA_ENABLED=1 -E_QUOTA_DISABLED=6 -E_LOG_EXIST=36 -E_LOG_NOTEXIST=37 -E_LOG_ENABLED=38 -E_LOG_DISABLED=39 -E_PKG_EXIST=7 -E_PKG_NOTEXIST=7 -E_PKG_UPGRADE=20 -E_PASSWORD_SHORT=23 -E_PASSWORD_WRONG=24 -E_FWD_EXISTS=25 -E_FWD_NOTFOUND=29 -E_CONF_EXISTS=30 -E_CONF_NOTEXIST=31 -E_PID_EXIST=32 -E_PID_NOTEXIST=32 -E_FILE_BROKEN=33 -E_LIMIT_NOTFOUND=34 -E_BACKUP_ENABLED=40 -E_BACKUP_DISABLED=41 -E_LOCK_EXIST=42 -E_DIR_NOTEXIST=43 -E_DIR_EXIST=44 -E_EMAIL_INVALID=45 -E_HOST_NOTFOUND=47 -E_HOST_EXIST=48 -E_HOST_USED=53 -E_CONN_FAILED=49 -E_PERMS_REQUEIURED=50 -E_TPL_EXIST=51 -E_TPL_NOTEXIST=52 -E_AUTH_ENABLED=55 -E_AUTH_DISABLED=56 -E_STATS_ENABLED=57 -E_STATS_DISABLED=58 -E_CERT_EXIST=59 -E_CERT_NOTEXIST=60 -E_CERT_INVALID=61 -E_KEY_INVALID=62 -E_CERTKEY_INVALID=63 -E_CERT_USED=64 -E_VALUE_EMPTY=65 -E_VALUE_EXIST=66 -E_ALIAS_NOTEXIST=67 -E_ALIAS_EXIST=68 -E_SHELL_INVALID=69 -E_INTERFACE_NOTEXIST=70 -E_IP_FIRST=71 -E_JOB_NOTEXIST=72 -E_JOB_EXIST=73 -E_ID_NOTEXIST=74 -E_ID_EXIST=75 -E_DB_NOTEXIST=76 -E_DB_EXIST=77 -E_DBHOST_NOTEXIST=78 -E_DBHOST_EXIST=79 -E_DBHOST_UNAVAILABLE=80 -E_JOB_SUSPENDED=81 -E_JOB_UNSUSPENDED=82 -E_DB_SUSPENDED=83 -E_DB_UNSUSPENDED=84 -E_DBUSER_NOTEXIST=85 -E_DBUSER_EXIST=86 -E_DBHOST_BUSY=87 -E_DBHOST_FREE=88 -E_UPD_FAILED=89 -E_PROXY_DISABLED='90' +E_ARGS=1 +E_INVALID=2 +E_NOTEXIST=3 +E_EXISTS=4 +E_SUSPENDED=5 +E_UNSUSPENDED=6 +E_INUSE=7 +E_LIMIT=8 +E_PASSWORD=9 +E_FORBIDEN=10 +E_DISABLED=11 +E_PARSING=12 +E_DISK=13 +E_LA=14 +E_FTP=15 +E_SSH=16 +E_DB=17 +E_RRD=18 +E_UPDATE=19 diff --git a/data/templates/skel/document_errors/403.html b/data/templates/skel/document_errors/403.html index 68bd5f2f0..8547c1069 100644 --- a/data/templates/skel/document_errors/403.html +++ b/data/templates/skel/document_errors/403.html @@ -1,17 +1,28 @@ - -
+Forbidden
403
Unfortunately, you do not have permission to view this.
+ + +Page Not Found
404
It seems that the page you were trying to reach does not exist anymore, or maybe it has just moved. You can start again from the home or go back to previous page.
+ +Internal Sever Error
500
Sorry, something went wrong :(
+ + +%domain%
-- apache + - nginx + - percona + - vesta -
+%domain%
-- apache + - nginx + - percona + - vesta -
+