diff --git a/bin/v_add_sys_ip b/bin/v_add_sys_ip index 0e1d1d62..d846a61c 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 9da65420..b92ab8c5 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 0d4f25e9..105989e5 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 1f6b44f0..713ea715 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 ad17abba..495024c7 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 4ab3b37d..d3761a0b 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 220768a8..21795dd0 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 79b53816..1b0c7f71 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 187d97db..d7ee2cea 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 7cfdd040..9cc67a69 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 856b953a..419a8970 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 00000000..a70fab42 --- /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 01bbf395..647d99d6 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 6766d8f0..a8ddaa59 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 9102ea46..79e15a62 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 f1e50fb6..9e8aee1e 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 a087b196..94293bec 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 4bb18ff0..2cec9c65 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 486e01d4..525fc197 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 610460ab..6cfa1bc6 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 b73b4e85..f98831d2 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 583bcdc1..18917afa 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 891aae0a..c4428eff 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 2d70af14..2941a383 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 3a75f448..5b497808 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 e749a27e..44d63a49 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 00000000..66264979 --- /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 00000000..c4fd86cd --- /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 fd9d4588..73b2e827 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 d6873ca9..5f4d612e 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 a8a5714e..4c2a2ba5 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 be19ddd2..ea4f29c5 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 12356b91..d929aaf2 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 14441078..d8b0fa88 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 7ca46a30..8831976c 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 1833a5e0..c45b0c76 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 abab6e37..78099190 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 6c61ba94..96494558 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 0d70fe1d..6b2da7b9 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 1cb0e7fc..32a1529e 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 fe7c2c36..80ac30ff 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 b8c60629..9050b680 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 68bd5f2f..8547c106 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 -
+