mirror of
https://github.com/myvesta/vesta
synced 2025-07-06 04:51:54 -07:00
refactoring: log_event(), is_format_valid()
This commit is contained in:
parent
325ca65f32
commit
a61a6e979e
52 changed files with 582 additions and 1170 deletions
|
@ -17,7 +17,7 @@ hour=$3
|
||||||
day=$4
|
day=$4
|
||||||
month=$5
|
month=$5
|
||||||
wday=$6
|
wday=$6
|
||||||
command=$(echo $7 | sed "s/'/%quote%/g")
|
command=$(echo $7 |sed "s/'/%quote%/g")
|
||||||
job=$8
|
job=$8
|
||||||
restart=$9
|
restart=$9
|
||||||
|
|
||||||
|
@ -25,8 +25,7 @@ restart=$9
|
||||||
source $VESTA/func/main.sh
|
source $VESTA/func/main.sh
|
||||||
source $VESTA/conf/vesta.conf
|
source $VESTA/conf/vesta.conf
|
||||||
|
|
||||||
# Assigning new value
|
HIDE=7
|
||||||
A7="$command"
|
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
|
@ -40,8 +40,8 @@ time=$(echo "$time_n_date" |cut -f 1 -d \ )
|
||||||
date=$(echo "$time_n_date" |cut -f 2 -d \ )
|
date=$(echo "$time_n_date" |cut -f 2 -d \ )
|
||||||
|
|
||||||
# Define time somewhere at night
|
# Define time somewhere at night
|
||||||
min=$(gen_password '012345' '2')
|
min=$(generate_password '012345' '2')
|
||||||
hour=$(gen_password '1234567' '1')
|
hour=$(generate_password '1234567' '1')
|
||||||
day='*'
|
day='*'
|
||||||
month='*'
|
month='*'
|
||||||
wday='*'
|
wday='*'
|
||||||
|
|
|
@ -17,8 +17,13 @@
|
||||||
user=$1
|
user=$1
|
||||||
domain=$(idn -t --quiet -u "$2" )
|
domain=$(idn -t --quiet -u "$2" )
|
||||||
domain=$(echo $domain | sed -e 's/\.*$//g' -e 's/^\.*//g')
|
domain=$(echo $domain | sed -e 's/\.*$//g' -e 's/^\.*//g')
|
||||||
domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
|
if [[ "$domain" =~ [[:upper:]] ]]; then
|
||||||
domain_idn=$(idn -t --quiet -a "$domain")
|
domain=$(echo "$domain" |tr '[:upper:]' '[:lower:]')
|
||||||
|
fi
|
||||||
|
domain_idn="$domain"
|
||||||
|
if [[ "$domain" = *[![:ascii:]]* ]]; then
|
||||||
|
domain_idn=$(idn -t --quiet -a $domain)
|
||||||
|
fi
|
||||||
ip=$3
|
ip=$3
|
||||||
ns1=$4
|
ns1=$4
|
||||||
ns2=$5
|
ns2=$5
|
||||||
|
@ -48,7 +53,7 @@ is_object_unsuspended 'user' 'USER' "$user"
|
||||||
is_domain_new 'dns'
|
is_domain_new 'dns'
|
||||||
is_package_full 'DNS_DOMAINS'
|
is_package_full 'DNS_DOMAINS'
|
||||||
template=$(get_user_value '$DNS_TEMPLATE')
|
template=$(get_user_value '$DNS_TEMPLATE')
|
||||||
is_dns_template_valid
|
is_dns_template_valid $template
|
||||||
|
|
||||||
if [ ! -z "$ns1" ]; then
|
if [ ! -z "$ns1" ]; then
|
||||||
ns1=$(echo $4 | sed -e 's/\.*$//g' -e 's/^\.*//g')
|
ns1=$(echo $4 | sed -e 's/\.*$//g' -e 's/^\.*//g')
|
||||||
|
|
|
@ -14,9 +14,7 @@
|
||||||
|
|
||||||
# Argument definition
|
# Argument definition
|
||||||
user=$1
|
user=$1
|
||||||
domain=$(idn -t --quiet -u "$2" )
|
domain=$2
|
||||||
domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
|
|
||||||
domain_idn=$(idn -t --quiet -a "$domain")
|
|
||||||
record=$(idn -t --quiet -u "$3" )
|
record=$(idn -t --quiet -u "$3" )
|
||||||
record=$(echo "$record" | tr '[:upper:]' '[:lower:]')
|
record=$(echo "$record" | tr '[:upper:]' '[:lower:]')
|
||||||
rtype=$(echo "$4"| tr '[:lower:]' '[:upper:]')
|
rtype=$(echo "$4"| tr '[:lower:]' '[:upper:]')
|
||||||
|
|
|
@ -39,11 +39,9 @@ is_object_unsuspended 'user' 'USER' "$user"
|
||||||
|
|
||||||
# Get ip if it wasn't defined
|
# Get ip if it wasn't defined
|
||||||
if [ -z "$ip" ]; then
|
if [ -z "$ip" ]; then
|
||||||
ip=$(get_user_ip $user)
|
get_user_ip $user
|
||||||
if [ -z "$ip" ]; then
|
if [ -z "$ip" ]; then
|
||||||
echo "Error: no avaiable IP address"
|
check_result $E_NOTEXIST "no avaiable IP address"
|
||||||
log_event "$E_NOTEXIST" "$ARGUMENTS"
|
|
||||||
exit $E_NOTEXIST
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ is_object_valid 'user' 'USER' "$user"
|
||||||
is_object_unsuspended 'user' 'USER' "$user"
|
is_object_unsuspended 'user' 'USER' "$user"
|
||||||
is_object_valid 'mail' 'DOMAIN' "$domain"
|
is_object_valid 'mail' 'DOMAIN' "$domain"
|
||||||
is_object_unsuspended 'mail' 'DOMAIN' "$domain"
|
is_object_unsuspended 'mail' 'DOMAIN' "$domain"
|
||||||
is_package_full 'MAIL_USER'
|
is_package_full 'MAIL_ACCOUNTS'
|
||||||
is_mail_new "$account"
|
is_mail_new "$account"
|
||||||
is_password_valid
|
is_password_valid
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ is_password_valid
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
# Generating hashed password
|
# Generating hashed password
|
||||||
salt=$(gen_password "$PW_MATRIX" "8")
|
salt=$(generate_password "$PW_MATRIX" "8")
|
||||||
md5="{MD5}$($BIN/v-generate-password-hash md5 $salt <<<$password)"
|
md5="{MD5}$($BIN/v-generate-password-hash md5 $salt <<<$password)"
|
||||||
|
|
||||||
# Adding account info into password file
|
# Adding account info into password file
|
||||||
|
|
|
@ -13,8 +13,13 @@
|
||||||
user=$1
|
user=$1
|
||||||
domain=$(idn -t --quiet -u "$2" )
|
domain=$(idn -t --quiet -u "$2" )
|
||||||
domain=$(echo $domain | sed -e 's/\.*$//g' -e 's/^\.*//g')
|
domain=$(echo $domain | sed -e 's/\.*$//g' -e 's/^\.*//g')
|
||||||
domain=$(echo $domain | tr '[:upper:]' '[:lower:]')
|
if [[ "$domain" =~ [[:upper:]] ]]; then
|
||||||
domain_idn=$(idn -t --quiet -a "$domain")
|
domain=$(echo "$domain" |tr '[:upper:]' '[:lower:]')
|
||||||
|
fi
|
||||||
|
domain_idn="$domain"
|
||||||
|
if [[ "$domain" = *[![:ascii:]]* ]]; then
|
||||||
|
domain_idn=$(idn -t --quiet -a $domain)
|
||||||
|
fi
|
||||||
antispam=${3-yes}
|
antispam=${3-yes}
|
||||||
antivirus=${4-yes}
|
antivirus=${4-yes}
|
||||||
dkim=${5-yes}
|
dkim=${5-yes}
|
||||||
|
|
|
@ -58,12 +58,11 @@ fi
|
||||||
if [ "$restart" = 'yes' ]; then
|
if [ "$restart" = 'yes' ]; then
|
||||||
subj="OpenSSH restart failed"
|
subj="OpenSSH restart failed"
|
||||||
email=$(grep CONTACT $VESTA/data/users/admin/user.conf |cut -f 2 -d \')
|
email=$(grep CONTACT $VESTA/data/users/admin/user.conf |cut -f 2 -d \')
|
||||||
send_mail="$VESTA/web/inc/mail-wrapper.php"
|
|
||||||
/usr/sbin/sshd -t >/dev/null 2>&1
|
/usr/sbin/sshd -t >/dev/null 2>&1
|
||||||
if [ "$?" -ne 0 ]; then
|
if [ "$?" -ne 0 ]; then
|
||||||
mail_text="OpenSSH can not be restarted. Please check config:
|
mail_text="OpenSSH can not be restarted. Please check config:
|
||||||
\n\n$(/usr/sbin/sshd -t)"
|
\n\n$(/usr/sbin/sshd -t)"
|
||||||
echo -e "$mail_text" | $send_mail -s "$subj" $email
|
echo -e "$mail_text" |$SENDMAIL -s "$subj" $email
|
||||||
else
|
else
|
||||||
service ssh restart >/dev/null 2>&1
|
service ssh restart >/dev/null 2>&1
|
||||||
service sshd restart >/dev/null 2>&1
|
service sshd restart >/dev/null 2>&1
|
||||||
|
|
|
@ -24,9 +24,7 @@ source $VESTA/conf/vesta.conf
|
||||||
is_user_free() {
|
is_user_free() {
|
||||||
check_sysuser=$(cut -f 1 -d : /etc/passwd | grep -w "$user" )
|
check_sysuser=$(cut -f 1 -d : /etc/passwd | grep -w "$user" )
|
||||||
if [ ! -z "$check_sysuser" ] || [ -e "$USER_DATA" ]; then
|
if [ ! -z "$check_sysuser" ] || [ -e "$USER_DATA" ]; then
|
||||||
echo "Error: user $user exists"
|
check_result $E_EXISTS "user $user exists"
|
||||||
log_event "$E_EXISTS" "$ARGUMENTS"
|
|
||||||
exit $E_EXISTS
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -155,7 +153,7 @@ $pkg_data
|
||||||
CONTACT='$email'
|
CONTACT='$email'
|
||||||
CRON_REPORTS='yes'
|
CRON_REPORTS='yes'
|
||||||
MD5='$(awk -v user=$user -F : 'user == $1 {print $2}' /etc/shadow)'
|
MD5='$(awk -v user=$user -F : 'user == $1 {print $2}' /etc/shadow)'
|
||||||
RKEY='$(gen_password)'
|
RKEY='$(generate_password)'
|
||||||
SUSPENDED='no'
|
SUSPENDED='no'
|
||||||
SUSPENDED_USERS='0'
|
SUSPENDED_USERS='0'
|
||||||
SUSPENDED_WEB='0'
|
SUSPENDED_WEB='0'
|
||||||
|
|
|
@ -61,7 +61,7 @@ is_object_valid 'user' 'USER' "$user"
|
||||||
is_object_unsuspended 'user' 'USER' "$user"
|
is_object_unsuspended 'user' 'USER' "$user"
|
||||||
is_package_full 'WEB_DOMAINS' 'WEB_ALIASES'
|
is_package_full 'WEB_DOMAINS' 'WEB_ALIASES'
|
||||||
is_domain_new 'web' "$domain,$aliases"
|
is_domain_new 'web' "$domain,$aliases"
|
||||||
is_ip_valid "$ip"
|
is_ip_valid "$ip" "$user"
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
@ -133,8 +133,8 @@ fi
|
||||||
|
|
||||||
# Increasing counters
|
# Increasing counters
|
||||||
increase_ip_value "$local_ip"
|
increase_ip_value "$local_ip"
|
||||||
increase_user_value "$user" '$U_WEB_DOMAINS' "$alias_number"
|
increase_user_value "$user" '$U_WEB_DOMAINS'
|
||||||
increase_user_value "$user" '$U_WEB_ALIASES'
|
increase_user_value "$user" '$U_WEB_ALIASES' "$alias_number"
|
||||||
|
|
||||||
# Generating timestamp
|
# Generating timestamp
|
||||||
time_n_date=$(date +'%T %F')
|
time_n_date=$(date +'%T %F')
|
||||||
|
|
|
@ -55,11 +55,11 @@ local_ip=$(get_real_ip $IP)
|
||||||
|
|
||||||
# Preparing domain values for the template substitution
|
# Preparing domain values for the template substitution
|
||||||
PROXY_EXT="$extentions"
|
PROXY_EXT="$extentions"
|
||||||
add_web_config "$PROXY_SYSTEM" "$PROXY.tpl"
|
add_web_config "$PROXY_SYSTEM" "$template.tpl"
|
||||||
|
|
||||||
# Adding proxy for ssl
|
# Adding proxy for ssl
|
||||||
if [ "$SSL" = 'yes' ]; then
|
if [ "$SSL" = 'yes' ]; then
|
||||||
add_web_config "$PROXY_SYSTEM" "$PROXY.stpl"
|
add_web_config "$PROXY_SYSTEM" "$template.stpl"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ fi
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
# Update config
|
# Update config
|
||||||
update_object_value 'web' 'DOMAIN' "$domain" '$PROXY' "$PROXY"
|
update_object_value 'web' 'DOMAIN' "$domain" '$PROXY' "$template"
|
||||||
update_object_value 'web' 'DOMAIN' "$domain" '$PROXY_EXT' "$extentions"
|
update_object_value 'web' 'DOMAIN' "$domain" '$PROXY_EXT' "$extentions"
|
||||||
|
|
||||||
# Restarting web server
|
# Restarting web server
|
||||||
|
|
|
@ -41,7 +41,7 @@ is_backup_enabled
|
||||||
|
|
||||||
# Set backup directory if undefined
|
# Set backup directory if undefined
|
||||||
if [ -z "$BACKUP" ]; then
|
if [ -z "$BACKUP" ]; then
|
||||||
BACKUP=/home/backup
|
BACKUP=/backup
|
||||||
fi
|
fi
|
||||||
mkdir -p $BACKUP
|
mkdir -p $BACKUP
|
||||||
|
|
||||||
|
@ -49,28 +49,20 @@ mkdir -p $BACKUP
|
||||||
start_time=$(date '+%s')
|
start_time=$(date '+%s')
|
||||||
|
|
||||||
# Set notification email and subject
|
# Set notification email and subject
|
||||||
if [ "$notify" != 'no' ]; then
|
subj="$user → backup failed"
|
||||||
subj="$user → backup failed"
|
email=$(grep CONTACT $VESTA/data/users/admin/user.conf |cut -f 2 -d \')
|
||||||
email=$(get_user_value '$CONTACT')
|
|
||||||
else
|
|
||||||
subj="$user → backup failed"
|
|
||||||
email=$(grep CONTACT $VESTA/data/users/admin/user.conf |cut -f 2 -d \')
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check load average
|
# Checking load average
|
||||||
la=$(cat /proc/loadavg |cut -f 1 -d ' ' |cut -f 1 -d '.')
|
la=$(cat /proc/loadavg |cut -f 1 -d ' ' |cut -f 1 -d '.')
|
||||||
i=0
|
i=0
|
||||||
while [ "$la" -ge "$BACKUP_LA_LIMIT" ]; do
|
while [ "$la" -ge "$BACKUP_LA_LIMIT" ]; do
|
||||||
echo "$(date "+%F %T") LoadAverage $la is above threshold. Sleeping..."
|
echo -e "$(date "+%F %T") Load Average $la"
|
||||||
sleep 120
|
sleep 60
|
||||||
if [ "$i" -ge "5" ]; then
|
if [ "$i" -ge "15" ]; then
|
||||||
mail_top=$(top -b| head -n 30)
|
la_error="LoadAverage $la is above threshold"
|
||||||
mail_text="LoadAverage $i is above threshold\n\n$mail_top\n"
|
echo "$la_error" |$SENDMAIL -s "$subj" $email $notify
|
||||||
echo -e "$mail_text" |$send_mail -s "$subj" $email
|
|
||||||
echo "Error: LA is too high"
|
|
||||||
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
|
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
|
||||||
log_event "$E_LA" "$ARGUMENTS"
|
check_result $E_LA "$la_error"
|
||||||
exit $E_LA
|
|
||||||
fi
|
fi
|
||||||
la=$(cat /proc/loadavg |cut -f 1 -d ' ' |cut -f 1 -d '.')
|
la=$(cat /proc/loadavg |cut -f 1 -d ' ' |cut -f 1 -d '.')
|
||||||
(( ++i))
|
(( ++i))
|
||||||
|
@ -79,48 +71,40 @@ done
|
||||||
# Creating temporary directory
|
# Creating temporary directory
|
||||||
tmpdir=$(mktemp -p $BACKUP -d)
|
tmpdir=$(mktemp -p $BACKUP -d)
|
||||||
if [ "$?" -ne 0 ]; then
|
if [ "$?" -ne 0 ]; then
|
||||||
echo "Can't create tmp dir $tmpdir" |$send_mail -s "$subj" $email
|
echo "Can't create tmp dir $tmpdir" |$SENDMAIL -s "$subj" $email $notify
|
||||||
echo "Error: can't create tmp dir"
|
check_result $E_NOTEXIST "can't create tmp dir"
|
||||||
log_event "$E_NOTEXIST" "$ARGUMENTS"
|
|
||||||
exit $E_NOTEXIST
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Backup sys configs
|
# Backup sys configs
|
||||||
echo -e "-- SYSTEM --"
|
echo "-- SYSTEM --" |tee $BACKUP/$user.log
|
||||||
msg="-- SYSTEM --"
|
|
||||||
mkdir $tmpdir/vesta
|
mkdir $tmpdir/vesta
|
||||||
|
|
||||||
echo -e "$(date "+%F %T") $user.conf"
|
echo -e "$(date "+%F %T") $user.conf" |tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n$(date "+%F %T") $user.conf"
|
|
||||||
cp -r $USER_DATA/user.conf $tmpdir/vesta/
|
cp -r $USER_DATA/user.conf $tmpdir/vesta/
|
||||||
|
cp -r $USER_DATA/ssl $tmpdir/vesta/
|
||||||
|
|
||||||
if [ -e "$USER_DATA/stats.log" ]; then
|
if [ -e "$USER_DATA/stats.log" ]; then
|
||||||
echo -e "$(date "+%F %T") stats.log"
|
echo -e "$(date "+%F %T") stats.log" |tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n$(date "+%F %T") stats.log"
|
|
||||||
cp -r $USER_DATA/stats.log $tmpdir/vesta/
|
cp -r $USER_DATA/stats.log $tmpdir/vesta/
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -e "$USER_DATA/history.log" ]; then
|
if [ -e "$USER_DATA/history.log" ]; then
|
||||||
echo -e "$(date "+%F %T") history.log"
|
echo -e "$(date "+%F %T") history.log" |tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n$(date "+%F %T") history.log"
|
|
||||||
cp -r $USER_DATA/history.log $tmpdir/vesta/
|
cp -r $USER_DATA/history.log $tmpdir/vesta/
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -e "$USER_DATA/backup-excludes.conf" ]; then
|
if [ -e "$USER_DATA/backup-excludes.conf" ]; then
|
||||||
echo -e "$(date "+%F %T") backup-excludes.conf"
|
echo -e "$(date "+%F %T") backup-excludes.conf" |tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n$(date "+%F %T") backup-excludes.conf"
|
|
||||||
cp -r $USER_DATA/backup-excludes.conf $tmpdir/vesta/
|
cp -r $USER_DATA/backup-excludes.conf $tmpdir/vesta/
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Backup PAM
|
# Backup PAM
|
||||||
mkdir $tmpdir/pam
|
mkdir $tmpdir/pam
|
||||||
echo -e "$(date "+%F %T") pam"
|
echo -e "$(date "+%F %T") pam" |tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n$(date "+%F %T") pam"
|
|
||||||
grep "^$user:" /etc/passwd > $tmpdir/pam/passwd
|
grep "^$user:" /etc/passwd > $tmpdir/pam/passwd
|
||||||
grep "^$user:" /etc/shadow > $tmpdir/pam/shadow
|
grep "^$user:" /etc/shadow > $tmpdir/pam/shadow
|
||||||
grep "^$user:" /etc/group > $tmpdir/pam/group
|
grep "^$user:" /etc/group > $tmpdir/pam/group
|
||||||
echo
|
echo
|
||||||
msg="$msg\n"
|
|
||||||
|
|
||||||
# Parsing excludes
|
# Parsing excludes
|
||||||
if [ -e "$USER_DATA/backup-excludes.conf" ]; then
|
if [ -e "$USER_DATA/backup-excludes.conf" ]; then
|
||||||
|
@ -129,8 +113,7 @@ fi
|
||||||
|
|
||||||
# WEB domains
|
# WEB domains
|
||||||
if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB" != '*' ]; then
|
if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB" != '*' ]; then
|
||||||
echo "-- WEB --"
|
echo -e "\n-- WEB --" |tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n-- WEB --"
|
|
||||||
mkdir $tmpdir/web/
|
mkdir $tmpdir/web/
|
||||||
|
|
||||||
# Parsing domain exclusions
|
# Parsing domain exclusions
|
||||||
|
@ -140,8 +123,7 @@ if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB" != '*' ]; then
|
||||||
if [ -z "$exclusion" ]; then
|
if [ -z "$exclusion" ]; then
|
||||||
web_list="$web_list $domain"
|
web_list="$web_list $domain"
|
||||||
else
|
else
|
||||||
echo "$(date "+%F %T") excluding $domain"
|
echo "$(date "+%F %T") excluding $domain"|tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n$(date "+%F %T") excluding $domain"
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
web_list=$(echo "$web_list" |sed -e "s/ */\ /g" -e "s/^ //")
|
web_list=$(echo "$web_list" |sed -e "s/ */\ /g" -e "s/^ //")
|
||||||
|
@ -150,8 +132,7 @@ if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB" != '*' ]; then
|
||||||
|
|
||||||
for domain in $web_list; do
|
for domain in $web_list; do
|
||||||
((i ++))
|
((i ++))
|
||||||
echo -e "$(date "+%F %T") $domain"
|
echo -e "$(date "+%F %T") $domain" |tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n$(date "+%F %T") $domain"
|
|
||||||
mkdir -p $tmpdir/web/$domain/conf
|
mkdir -p $tmpdir/web/$domain/conf
|
||||||
mkdir -p $tmpdir/web/$domain/vesta
|
mkdir -p $tmpdir/web/$domain/vesta
|
||||||
|
|
||||||
|
@ -222,7 +203,7 @@ if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB" != '*' ]; then
|
||||||
|
|
||||||
# Backup files
|
# Backup files
|
||||||
cd $HOMEDIR/$user/web/$domain
|
cd $HOMEDIR/$user/web/$domain
|
||||||
tar -cpf $tmpdir/web/$domain/domain_data.tar * ${fargs[@]}
|
tar -cpf $tmpdir/web/$domain/domain_data.tar * ${fargs[@]}
|
||||||
|
|
||||||
# Compress archive
|
# Compress archive
|
||||||
gzip -$BACKUP_GZIP $tmpdir/web/$domain/domain_data.tar
|
gzip -$BACKUP_GZIP $tmpdir/web/$domain/domain_data.tar
|
||||||
|
@ -230,20 +211,15 @@ if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB" != '*' ]; then
|
||||||
|
|
||||||
# Print total
|
# Print total
|
||||||
if [ "$i" -eq 1 ]; then
|
if [ "$i" -eq 1 ]; then
|
||||||
echo -e "$(date "+%F %T") *** $i domain ***"
|
echo -e "$(date "+%F %T") *** $i domain ***" |tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n$(date "+%F %T") *** $i domain ***"
|
|
||||||
else
|
else
|
||||||
echo -e "$(date "+%F %T") *** $i domains ***"
|
echo -e "$(date "+%F %T") *** $i domains ***"|tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n$(date "+%F %T") *** $i domains ***"
|
|
||||||
fi
|
fi
|
||||||
echo
|
|
||||||
msg="$msg\n"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# DNS domains
|
# DNS domains
|
||||||
if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS" != '*' ]; then
|
if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS" != '*' ]; then
|
||||||
echo "-- DNS --"
|
echo -e "\n-- DNS --" |tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n-- DNS --"
|
|
||||||
mkdir $tmpdir/dns/
|
mkdir $tmpdir/dns/
|
||||||
|
|
||||||
# Parsing domain exclusions
|
# Parsing domain exclusions
|
||||||
|
@ -261,8 +237,7 @@ if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS" != '*' ]; then
|
||||||
i=0
|
i=0
|
||||||
for domain in $dns_list; do
|
for domain in $dns_list; do
|
||||||
((i ++))
|
((i ++))
|
||||||
echo -e "$(date "+%F %T") $domain"
|
echo -e "$(date "+%F %T") $domain" |tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n$(date "+%F %T") $domain"
|
|
||||||
|
|
||||||
# Building directory tree
|
# Building directory tree
|
||||||
mkdir -p $tmpdir/dns/$domain/conf
|
mkdir -p $tmpdir/dns/$domain/conf
|
||||||
|
@ -282,20 +257,15 @@ if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS" != '*' ]; then
|
||||||
|
|
||||||
# Print total
|
# Print total
|
||||||
if [ "$i" -eq 1 ]; then
|
if [ "$i" -eq 1 ]; then
|
||||||
echo -e "$(date "+%F %T") *** $i domain ***"
|
echo -e "$(date "+%F %T") *** $i domain ***" |tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n$(date "+%F %T") *** $i domain ***"
|
|
||||||
else
|
else
|
||||||
echo -e "$(date "+%F %T") *** $i domains ***"
|
echo -e "$(date "+%F %T") *** $i domains ***"|tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n$(date "+%F %T") *** $i domains ***"
|
|
||||||
fi
|
fi
|
||||||
echo
|
|
||||||
msg="$msg\n"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Mail domains
|
# Mail domains
|
||||||
if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL" != '*' ]; then
|
if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL" != '*' ]; then
|
||||||
echo "-- MAIL --"
|
echo -e "\n-- MAIL --" |tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n-- MAIL --"
|
|
||||||
mkdir $tmpdir/mail/
|
mkdir $tmpdir/mail/
|
||||||
|
|
||||||
# Parsing domain exclusions
|
# Parsing domain exclusions
|
||||||
|
@ -305,8 +275,7 @@ if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL" != '*' ]; then
|
||||||
if [ -z "$check_exl" ]; then
|
if [ -z "$check_exl" ]; then
|
||||||
mail_list="$mail_list $domain"
|
mail_list="$mail_list $domain"
|
||||||
else
|
else
|
||||||
echo "$(date "+%F %T") excluding $domain"
|
echo "$(date "+%F %T") excluding $domain"|tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n$(date "+%F %T") excluding $domain"
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
mail_list=$(echo "$mail_list" |sed -e "s/ */\ /g" -e "s/^ //")
|
mail_list=$(echo "$mail_list" |sed -e "s/ */\ /g" -e "s/^ //")
|
||||||
|
@ -314,8 +283,7 @@ if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL" != '*' ]; then
|
||||||
i=0
|
i=0
|
||||||
for domain in $mail_list; do
|
for domain in $mail_list; do
|
||||||
((i ++))
|
((i ++))
|
||||||
echo -e "$(date "+%F %T") $domain"
|
echo -e "$(date "+%F %T") $domain" |tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n$(date "+%F %T") $domain"
|
|
||||||
mkdir -p $tmpdir/mail/$domain/conf
|
mkdir -p $tmpdir/mail/$domain/conf
|
||||||
mkdir -p $tmpdir/mail/$domain/vesta
|
mkdir -p $tmpdir/mail/$domain/vesta
|
||||||
domain_idn=$(idn -t --quiet -a "$domain")
|
domain_idn=$(idn -t --quiet -a "$domain")
|
||||||
|
@ -342,13 +310,13 @@ if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL" != '*' ]; then
|
||||||
|
|
||||||
# Checking exlusions
|
# Checking exlusions
|
||||||
if [ -z "$exclusion" ] && [[ "$MAIL_SYSTEM" =~ exim ]]; then
|
if [ -z "$exclusion" ] && [[ "$MAIL_SYSTEM" =~ exim ]]; then
|
||||||
echo "$(date "+%F %T") + $account@$domain"
|
echo "$(date "+%F %T") + $account@$domain" |\
|
||||||
msg="$msg\n$(date "+%F %T") + $account@$domain"
|
tee -a $BACKUP/$user.log
|
||||||
touch $tmpdir/mail/$domain/accounts.tar
|
touch $tmpdir/mail/$domain/accounts.tar
|
||||||
tar -rpf $tmpdir/mail/$domain/accounts.tar $account
|
tar -rpf $tmpdir/mail/$domain/accounts.tar $account
|
||||||
else
|
else
|
||||||
echo "$(date "+%F %T") excluding account $account"
|
echo "$(date "+%F %T") excluding mail account $account" |\
|
||||||
msg="$msg\n$(date "+%F %T") excluding account $account"
|
tee -a $BACKUP/$user.log
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -360,21 +328,16 @@ if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL" != '*' ]; then
|
||||||
|
|
||||||
# Print total
|
# Print total
|
||||||
if [ "$i" -eq 1 ]; then
|
if [ "$i" -eq 1 ]; then
|
||||||
echo -e "$(date "+%F %T") *** $i domain ***"
|
echo -e "$(date "+%F %T") *** $i domain ***" |tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n$(date "+%F %T") *** $i domain ***"
|
|
||||||
else
|
else
|
||||||
echo -e "$(date "+%F %T") *** $i domains ***"
|
echo -e "$(date "+%F %T") *** $i domains ***"|tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n$(date "+%F %T") *** $i domains ***"
|
|
||||||
fi
|
fi
|
||||||
echo
|
|
||||||
msg="$msg\n"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Databases
|
# Databases
|
||||||
if [ ! -z "$DB_SYSTEM" ] && [ "$DB" != '*' ]; then
|
if [ ! -z "$DB_SYSTEM" ] && [ "$DB" != '*' ]; then
|
||||||
echo "-- DB --"
|
echo -e "\n-- DB --" |tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n-- DB --"
|
|
||||||
mkdir $tmpdir/db/
|
mkdir $tmpdir/db/
|
||||||
|
|
||||||
# Parsing database exclusions
|
# Parsing database exclusions
|
||||||
|
@ -383,8 +346,8 @@ if [ ! -z "$DB_SYSTEM" ] && [ "$DB" != '*' ]; then
|
||||||
if [ -z "$exclusion" ]; then
|
if [ -z "$exclusion" ]; then
|
||||||
db_list="$db_list $database"
|
db_list="$db_list $database"
|
||||||
else
|
else
|
||||||
echo "$(date "+%F %T") excluding $database"
|
echo "$(date "+%F %T") excluding $database" |\
|
||||||
msg="$msg\n$(date "+%F %T") excluding $database"
|
tee -a $BACKUP/$user.log
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -395,9 +358,7 @@ if [ ! -z "$DB_SYSTEM" ] && [ "$DB" != '*' ]; then
|
||||||
((i ++))
|
((i ++))
|
||||||
get_database_values
|
get_database_values
|
||||||
|
|
||||||
echo -e "$(date "+%F %T") $database ($TYPE)"
|
echo -e "$(date "+%F %T") $database ($TYPE)" |tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n$(date "+%F %T") $database ($TYPE)"
|
|
||||||
|
|
||||||
mkdir -p $tmpdir/db/$database/conf
|
mkdir -p $tmpdir/db/$database/conf
|
||||||
mkdir -p $tmpdir/db/$database/vesta
|
mkdir -p $tmpdir/db/$database/vesta
|
||||||
|
|
||||||
|
@ -417,20 +378,17 @@ if [ ! -z "$DB_SYSTEM" ] && [ "$DB" != '*' ]; then
|
||||||
|
|
||||||
# Print total
|
# Print total
|
||||||
if [ "$i" -eq 1 ]; then
|
if [ "$i" -eq 1 ]; then
|
||||||
echo -e "$(date "+%F %T") *** $i database ***"
|
echo -e "$(date "+%F %T") *** $i database ***" |\
|
||||||
msg="$msg\n$(date "+%F %T") *** $i database ***"
|
tee -a $BACKUP/$user.log
|
||||||
else
|
else
|
||||||
echo -e "$(date "+%F %T") *** $i databases ***"
|
echo -e "$(date "+%F %T") *** $i databases ***"|\
|
||||||
msg="$msg\n$(date "+%F %T") *** $i databases ***"
|
tee -a $BACKUP/$user.log
|
||||||
fi
|
fi
|
||||||
echo
|
|
||||||
msg="$msg\n"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Cron jobs
|
# Cron jobs
|
||||||
if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON" != '*' ]; then
|
if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON" != '*' ]; then
|
||||||
echo "-- CRON --"
|
echo -e "\n-- CRON --" |tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n-- CRON --"
|
|
||||||
mkdir $tmpdir/cron/
|
mkdir $tmpdir/cron/
|
||||||
|
|
||||||
# Backup cron.conf
|
# Backup cron.conf
|
||||||
|
@ -444,20 +402,17 @@ if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON" != '*' ]; then
|
||||||
|
|
||||||
# Print total
|
# Print total
|
||||||
if [ "$cron_record" -eq 1 ]; then
|
if [ "$cron_record" -eq 1 ]; then
|
||||||
echo -e "$(date "+%F %T") *** $cron_record job ***"
|
echo -e "$(date "+%F %T") *** $cron_record job ***" |\
|
||||||
msg="$msg\n$(date "+%F %T") *** $cron_record job ***"
|
tee -a $BACKUP/$user.log
|
||||||
else
|
else
|
||||||
echo -e "$(date "+%F %T") *** $cron_record jobs ***"
|
echo -e "$(date "+%F %T") *** $cron_record jobs ***" |\
|
||||||
msg="$msg\n$(date "+%F %T") *** $cron_record jobs ***"
|
tee -a $BACKUP/$user.log
|
||||||
fi
|
fi
|
||||||
echo
|
|
||||||
msg="$msg\n"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# User Directories
|
# User Directories
|
||||||
if [ "$USER" != '*' ]; then
|
if [ "$USER" != '*' ]; then
|
||||||
echo "-- User Dir --"
|
echo -e "\n-- User Dir --" |tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n-- User Dir --"
|
|
||||||
mkdir $tmpdir/user_dir
|
mkdir $tmpdir/user_dir
|
||||||
cd $HOMEDIR/$user
|
cd $HOMEDIR/$user
|
||||||
|
|
||||||
|
@ -471,8 +426,8 @@ if [ "$USER" != '*' ]; then
|
||||||
fargs+=(-not)
|
fargs+=(-not)
|
||||||
fargs+=(-path)
|
fargs+=(-path)
|
||||||
fargs+=("./$xpath*")
|
fargs+=("./$xpath*")
|
||||||
echo "$(date "+%F %T") excluding directory $xpath"
|
echo "$(date "+%F %T") excluding directory $xpath" |\
|
||||||
msg="$msg\n$(date "+%F %T") excluding directory $xpath"
|
tee -a $BACKUP/$user.log
|
||||||
done
|
done
|
||||||
|
|
||||||
IFS=$'\n'
|
IFS=$'\n'
|
||||||
|
@ -484,8 +439,7 @@ if [ "$USER" != '*' ]; then
|
||||||
if [ -z "$exclusion" ]; then
|
if [ -z "$exclusion" ]; then
|
||||||
((i ++))
|
((i ++))
|
||||||
udir_list="$udir_list $udir"
|
udir_list="$udir_list $udir"
|
||||||
echo -e "$(date "+%F %T") adding $udir"
|
echo -e "$(date "+%F %T") adding $udir" |tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n$(date "+%F %T") adding $udir"
|
|
||||||
|
|
||||||
# Backup files and dirs
|
# Backup files and dirs
|
||||||
tar -cpf $tmpdir/user_dir/$udir.tar $udir
|
tar -cpf $tmpdir/user_dir/$udir.tar $udir
|
||||||
|
@ -499,14 +453,12 @@ if [ "$USER" != '*' ]; then
|
||||||
|
|
||||||
# Print total
|
# Print total
|
||||||
if [ "$i" -eq 1 ]; then
|
if [ "$i" -eq 1 ]; then
|
||||||
echo -e "$(date "+%F %T") *** $i user directory ***"
|
echo -e "$(date "+%F %T") *** $i user directory ***" |\
|
||||||
msg="$msg\n$(date "+%F %T") *** $i directory ***"
|
tee -a $BACKUP/$user.log
|
||||||
else
|
else
|
||||||
echo -e "$(date "+%F %T") *** $i directories ***"
|
echo -e "$(date "+%F %T") *** $i directories ***" |\
|
||||||
msg="$msg\n$(date "+%F %T") *** $i directories ***"
|
tee -a $BACKUP/$user.log
|
||||||
fi
|
fi
|
||||||
echo
|
|
||||||
msg="$msg\n"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Get backup size
|
# Get backup size
|
||||||
|
@ -533,23 +485,20 @@ local_backup(){
|
||||||
# Removing old backup
|
# Removing old backup
|
||||||
for backup in $(echo "$backup_list" |head -n $backups_rm_number); do
|
for backup in $(echo "$backup_list" |head -n $backups_rm_number); do
|
||||||
backup_date=$(echo $backup |sed -e "s/$user.//" -e "s/.tar$//")
|
backup_date=$(echo $backup |sed -e "s/$user.//" -e "s/.tar$//")
|
||||||
echo -e "$(date "+%F %T") Roated: $backup_date"
|
echo -e "$(date "+%F %T") Roated: $backup_date" |\
|
||||||
msg="$msg\n$(date "+%F %T") Rotated: $backup_date"
|
tee -a $BACKUP/$user.log
|
||||||
rm -f $BACKUP/$backup
|
rm -f $BACKUP/$backup
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Checking disk space
|
# Checking disk space
|
||||||
disk_usage=$(df $BACKUP |tail -n1 |tr ' ' '\n' |grep % |cut -f 1 -d %)
|
disk_usage=$(df $BACKUP |tail -n1 |tr ' ' '\n' |grep % |cut -f 1 -d %)
|
||||||
|
|
||||||
if [ "$disk_usage" -ge "$BACKUP_DISK_LIMIT" ]; then
|
if [ "$disk_usage" -ge "$BACKUP_DISK_LIMIT" ]; then
|
||||||
rm -rf $tmpdir
|
rm -rf $tmpdir
|
||||||
echo "Not enough disk space to run backup" |\
|
rm -f $BACKUP/$user.log
|
||||||
$send_mail -s "$subj" $email
|
|
||||||
echo "Error: Not enough disk space"
|
|
||||||
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
|
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
|
||||||
log_event "$E_DISK" "$ARGUMENTS"
|
echo "Not enough disk space" |$SENDMAIL -s "$subj" $email $notify
|
||||||
exit $E_DISK
|
check_result "$E_DISK" "Not enough dsk space"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Creating final tarball
|
# Creating final tarball
|
||||||
|
@ -558,8 +507,8 @@ local_backup(){
|
||||||
chmod 640 $BACKUP/$user.$date.tar
|
chmod 640 $BACKUP/$user.$date.tar
|
||||||
chown admin:$user $BACKUP/$user.$date.tar
|
chown admin:$user $BACKUP/$user.$date.tar
|
||||||
localbackup='yes'
|
localbackup='yes'
|
||||||
echo -e "$(date "+%F %T") Local: $BACKUP/$user.$date.tar"
|
echo -e "$(date "+%F %T") Local: $BACKUP/$user.$date.tar" |\
|
||||||
msg="$msg\n$(date "+%F %T") Local: $BACKUP/$user.$date.tar"
|
tee -a $BACKUP/$user.log
|
||||||
U_BACKUPS=$(ls $BACKUP/ |grep "^$user." |wc -l)
|
U_BACKUPS=$(ls $BACKUP/ |grep "^$user." |wc -l)
|
||||||
update_user_value "$user" '$U_BACKUPS' "$U_BACKUPS"
|
update_user_value "$user" '$U_BACKUPS' "$U_BACKUPS"
|
||||||
}
|
}
|
||||||
|
@ -582,12 +531,12 @@ EOF
|
||||||
ftp_backup() {
|
ftp_backup() {
|
||||||
# Checking config
|
# Checking config
|
||||||
if [ ! -e "$VESTA/conf/ftp.backup.conf" ]; then
|
if [ ! -e "$VESTA/conf/ftp.backup.conf" ]; then
|
||||||
ftp_conf_error="Can't open $VESTA/conf/ftp.backup.conf"
|
error="ftp.backup.conf doesn't exist"
|
||||||
echo "$ftp_conf_error" |$send_mail -s "$subj" $email
|
rm -rf $tmpdir
|
||||||
echo "Error: $VESTA/conf/ftp.backup.conf doesn't exist"
|
rm -f $BACKUP/$user.log
|
||||||
|
echo "$error" |$SENDMAIL -s "$subj" $email $notify
|
||||||
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
|
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
|
||||||
log_event "$E_NOTEXIST" "$ARGUMENTS"
|
check_result "$E_NOTEXIST" "$error"
|
||||||
exit $E_NOTEXIST
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Parse config
|
# Parse config
|
||||||
|
@ -600,13 +549,12 @@ ftp_backup() {
|
||||||
|
|
||||||
# Checking variables
|
# Checking variables
|
||||||
if [ -z "$HOST" ] || [ -z "$USERNAME" ] || [ -z "$PASSWORD" ]; then
|
if [ -z "$HOST" ] || [ -z "$USERNAME" ] || [ -z "$PASSWORD" ]; then
|
||||||
|
error="Can't parse ftp backup configuration"
|
||||||
rm -rf $tmpdir
|
rm -rf $tmpdir
|
||||||
echo "Can't parse ftp backup configuration" |\
|
rm -f $BACKUP/$user.log
|
||||||
$send_mail -s "$subj" $email
|
echo "$error" |$SENDMAIL -s "$subj" $email $notify
|
||||||
echo "Error: Parsing error"
|
|
||||||
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
|
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
|
||||||
log_event "$E_PARSING" "$ARGUMENTS"
|
check_result "$E_PARSING" "$error"
|
||||||
exit $E_PARSING
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
@ -617,13 +565,12 @@ ftp_backup() {
|
||||||
fconn=$(ftpc)
|
fconn=$(ftpc)
|
||||||
ferror=$(echo $fconn |grep -i -e failed -e error -e "Can't" -e "not conn")
|
ferror=$(echo $fconn |grep -i -e failed -e error -e "Can't" -e "not conn")
|
||||||
if [ ! -z "$ferror" ]; then
|
if [ ! -z "$ferror" ]; then
|
||||||
|
error="Error: can't login to ftp ftp://$USERNAME@$HOST"
|
||||||
rm -rf $tmpdir
|
rm -rf $tmpdir
|
||||||
echo "Can't login to ftp://$USERNAME@$HOST" |\
|
rm -f $BACKUP/$user.log
|
||||||
$send_mail -s "$subj" $email
|
echo "$error" |$SENDMAIL -s "$subj" $email $notify
|
||||||
echo "Error: can't login to ftp ftp://$USERNAME@$HOST"
|
|
||||||
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
|
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
|
||||||
log_event "$E_CONNECT" "$ARGUMENTS"
|
check_result "$E_CONNECT" "$error"
|
||||||
exit $E_CONNECT
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check ftp permissions
|
# Check ftp permissions
|
||||||
|
@ -632,13 +579,12 @@ ftp_backup() {
|
||||||
ftpc "mkdir $ftmpdir" "rm $ftmpdir"
|
ftpc "mkdir $ftmpdir" "rm $ftmpdir"
|
||||||
ftp_result=$(ftpc "mkdir $ftmpdir" "rm $ftmpdir" |grep -v Trying)
|
ftp_result=$(ftpc "mkdir $ftmpdir" "rm $ftmpdir" |grep -v Trying)
|
||||||
if [ ! -z "$ftp_result" ] ; then
|
if [ ! -z "$ftp_result" ] ; then
|
||||||
|
error="Can't create ftp backup folder ftp://$HOST$BPATH"
|
||||||
rm -rf $tmpdir
|
rm -rf $tmpdir
|
||||||
echo "Can't create ftp backup folder ftp://$HOST$BPATH" |\
|
rm -f $BACKUP/$user.log
|
||||||
$send_mail -s "$subj" $email
|
echo "$error" |$SENDMAIL -s "$subj" $email $notify
|
||||||
echo "Error: cant's create ftp folder ftp://$HOST$BPATH"
|
|
||||||
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
|
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
|
||||||
log_event "$E_FTP" "$ARGUMENTS"
|
check_result "$E_FTP" "$error"
|
||||||
exit $E_FTP
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Checking retention
|
# Checking retention
|
||||||
|
@ -648,8 +594,8 @@ ftp_backup() {
|
||||||
backups_rm_number=$((backups_count - BACKUPS + 1))
|
backups_rm_number=$((backups_count - BACKUPS + 1))
|
||||||
for backup in $(echo "$backup_list" |head -n $backups_rm_number); do
|
for backup in $(echo "$backup_list" |head -n $backups_rm_number); do
|
||||||
backup_date=$(echo $backup |sed -e "s/$user.//" -e "s/.tar$//")
|
backup_date=$(echo $backup |sed -e "s/$user.//" -e "s/.tar$//")
|
||||||
echo -e "$(date "+%F %T") Roated ftp backup: $backup_date"
|
echo -e "$(date "+%F %T") Roated ftp backup: $backup_date" |\
|
||||||
msg="$msg\n$(date "+%F %T") Roated ftp backup: $backup_date"
|
tee -a $BACKUP/$user.log
|
||||||
ftpc "cd $BPATH" "delete $backup"
|
ftpc "cd $BPATH" "delete $backup"
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
@ -729,12 +675,12 @@ sftp_backup() {
|
||||||
|
|
||||||
# Checking config
|
# Checking config
|
||||||
if [ ! -e "$VESTA/conf/sftp.backup.conf" ]; then
|
if [ ! -e "$VESTA/conf/sftp.backup.conf" ]; then
|
||||||
sftp_conf_error="Can't open $VESTA/conf/sftp.backup.conf"
|
error="Can't open sftp.backup.conf"
|
||||||
echo "$sftp_conf_error" |$send_mail -s "$subj" $email
|
rm -rf $tmpdir
|
||||||
echo "Error: $VESTA/conf/sftp.backup.conf doesn't exist"
|
rm -f $BACKUP/$user.log
|
||||||
|
echo "$error" |$SENDMAIL -s "$subj" $email $notify
|
||||||
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
|
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
|
||||||
log_event "$E_NOTEXIST" "$ARGUMENTS"
|
check_result "$E_NOTEXIST" "$error"
|
||||||
exit $E_NOTEXIST
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Parse config
|
# Parse config
|
||||||
|
@ -747,17 +693,17 @@ sftp_backup() {
|
||||||
|
|
||||||
# Checking variables
|
# Checking variables
|
||||||
if [ -z "$HOST" ] || [ -z "$USERNAME" ] || [ -z "$PASSWORD" ]; then
|
if [ -z "$HOST" ] || [ -z "$USERNAME" ] || [ -z "$PASSWORD" ]; then
|
||||||
|
error="Can't parse sftp backup configuration"
|
||||||
rm -rf $tmpdir
|
rm -rf $tmpdir
|
||||||
echo "Can't parse sftp backup configuration" |\
|
rm -f $BACKUP/$user.log
|
||||||
$send_mail -s "$subj" $email
|
echo "$error" |$SENDMAIL -s "$subj" $email $notify
|
||||||
echo "Error: Parsing error"
|
|
||||||
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
|
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
|
||||||
log_event "$E_PARSING" "$ARGUMENTS"
|
check_result "$E_PARSING" "$error"
|
||||||
exit $E_PARSING
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Debug info
|
# Debug info
|
||||||
echo -e "$(date "+%F %T") Remote: sftp://$HOST/$BPATH/$user.$date.tar"
|
echo -e "$(date "+%F %T") Remote: sftp://$HOST/$BPATH/$user.$date.tar" |\
|
||||||
|
tee -a $BACKUP/$user.log
|
||||||
|
|
||||||
# Checking network connection and write permissions
|
# Checking network connection and write permissions
|
||||||
sftmpdir="$BPATH/vst.bK76A9SUkt"
|
sftmpdir="$BPATH/vst.bK76A9SUkt"
|
||||||
|
@ -765,33 +711,32 @@ sftp_backup() {
|
||||||
sftpc "mkdir $sftmpdir" "rmdir $sftmpdir" > /dev/null 2>&1
|
sftpc "mkdir $sftmpdir" "rmdir $sftmpdir" > /dev/null 2>&1
|
||||||
rc=$?
|
rc=$?
|
||||||
if [[ "$rc" != 0 ]]; then
|
if [[ "$rc" != 0 ]]; then
|
||||||
rm -rf $tmpdir
|
|
||||||
case $rc in
|
case $rc in
|
||||||
$E_CONNECT) echo "Error: can't login to sftp host $HOST" |\
|
$E_CONNECT) error="Can't login to sftp host $HOST" ;;
|
||||||
$send_mail -s "$subj" $email;;
|
$E_FTP) error="Can't create temp folder on sftp $HOST" ;;
|
||||||
$E_FTP) echo "Error: can't create temp folder on sftp $HOST" |\
|
|
||||||
$send_mail -s "$subj" $email;;
|
|
||||||
esac
|
esac
|
||||||
|
rm -rf $tmpdir
|
||||||
|
rm -f $BACKUP/$user.log
|
||||||
|
echo "$error" |$SENDMAIL -s "$subj" $email $notify
|
||||||
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
|
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
|
||||||
log_event "$rc" "$ARGUMENTS"
|
check_result "$rc" "$error"
|
||||||
exit "$rc"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Checking retention
|
# Checking retention
|
||||||
backup_list=$(sftpc "cd $BPATH" "ls -l" |awk '{print $9}' |grep "^$user\.")
|
backup_list=$(sftpc "cd $BPATH" "ls -l" |awk '{print $9}'|grep "^$user\.")
|
||||||
backups_count=$(echo "$backup_list" |wc -l)
|
backups_count=$(echo "$backup_list" |wc -l)
|
||||||
if [ "$backups_count" -ge "$BACKUPS" ]; then
|
if [ "$backups_count" -ge "$BACKUPS" ]; then
|
||||||
backups_rm_number=$((backups_count - BACKUPS + 1))
|
backups_rm_number=$((backups_count - BACKUPS + 1))
|
||||||
for backup in $(echo "$backup_list" |head -n $backups_rm_number); do
|
for backup in $(echo "$backup_list" |head -n $backups_rm_number); do
|
||||||
backup_date=$(echo $backup |sed -e "s/$user.//" -e "s/.tar.*$//")
|
backup_date=$(echo $backup |sed -e "s/$user.//" -e "s/.tar.*$//")
|
||||||
echo -e "$(date "+%F %T") Roated sftp backup: $backup_date"
|
echo -e "$(date "+%F %T") Roated sftp backup: $backup_date" |\
|
||||||
msg="$msg\n$(date "+%F %T") Roated sftp backup: $backup_date"
|
tee -a $BACKUP/$user.log
|
||||||
sftpc "cd $BPATH" "rm $backup" > /dev/null 2>&1
|
sftpc "cd $BPATH" "rm $backup" > /dev/null 2>&1
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Uploading backup archive
|
# Uploading backup archive
|
||||||
echo -e "$(date "+%F %T") Uploading $user.$date.tar ..."
|
echo "$(date "+%F %T") Uploading $user.$date.tar"|tee -a $BACKUP/$user.log
|
||||||
if [ "$localbackup" = 'yes' ]; then
|
if [ "$localbackup" = 'yes' ]; then
|
||||||
cd $BACKUP
|
cd $BACKUP
|
||||||
sftpc "cd $BPATH" "put $user.$date.tar" > /dev/null 2>&1
|
sftpc "cd $BPATH" "put $user.$date.tar" > /dev/null 2>&1
|
||||||
|
@ -804,8 +749,7 @@ sftp_backup() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "-- SUMMARY --"
|
echo -e "\n-- SUMMARY --" |tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n-- SUMMARY --"
|
|
||||||
|
|
||||||
# Switching on backup system types
|
# Switching on backup system types
|
||||||
for backup_type in $(echo -e "${BACKUP_SYSTEM//,/\\n}"); do
|
for backup_type in $(echo -e "${BACKUP_SYSTEM//,/\\n}"); do
|
||||||
|
@ -831,10 +775,8 @@ if [ "$run_time" -eq 1 ]; then
|
||||||
min=minute
|
min=minute
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "$(date "+%F %T") Size: $size Mb"
|
echo "$(date "+%F %T") Size: $size Mb" |tee -a $BACKUP/$user.log
|
||||||
msg="$msg\n$(date "+%F %T") Size: $size Mb"
|
echo "$(date "+%F %T") Runtime: $run_time $min" |tee -a $BACKUP/$user.log
|
||||||
echo "$(date "+%F %T") Runtime: $run_time $min"
|
|
||||||
msg="$msg\n$(date "+%F %T") Runtime: $run_time $min"
|
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
@ -866,10 +808,11 @@ chmod 660 $USER_DATA/backup.conf
|
||||||
sed -i "/v-backup-user $user /d" $VESTA/data/queue/backup.pipe
|
sed -i "/v-backup-user $user /d" $VESTA/data/queue/backup.pipe
|
||||||
|
|
||||||
# Send notification
|
# Send notification
|
||||||
if [ "$notify" != 'no' ]; then
|
if [ -e "$BACKUP/$user.log" ]; then
|
||||||
subj="$user → backup has been completed"
|
subj="$user → backup has been completed"
|
||||||
email=$(get_user_value '$CONTACT')
|
email=$(get_user_value '$CONTACT')
|
||||||
echo -e "$msg" |$send_mail -s "$subj" $email
|
cat $BACKUP/$user.log #|$SENDMAIL -s "$subj" $email $notify
|
||||||
|
rm $BACKUP/$user.log
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Logging
|
# Logging
|
||||||
|
|
|
@ -80,7 +80,6 @@ $BIN/v-suspend-database $owner $database > /dev/null 2>&1
|
||||||
eval $db_data
|
eval $db_data
|
||||||
dump="$tmpdir/$database.$TYPE.sql"
|
dump="$tmpdir/$database.$TYPE.sql"
|
||||||
grants="$tmpdir/$database.$TYPE.$DBUSER"
|
grants="$tmpdir/$database.$TYPE.$DBUSER"
|
||||||
send_mail='/bin/true'
|
|
||||||
case $TYPE in
|
case $TYPE in
|
||||||
mysql) dump_mysql_database ;;
|
mysql) dump_mysql_database ;;
|
||||||
pgsql) dump_pgsql_database ;;
|
pgsql) dump_pgsql_database ;;
|
||||||
|
|
|
@ -35,7 +35,7 @@ is_object_valid 'user' 'USER' "$user"
|
||||||
is_object_unsuspended 'user' 'USER' "$user"
|
is_object_unsuspended 'user' 'USER' "$user"
|
||||||
is_object_valid 'dns' 'DOMAIN' "$domain"
|
is_object_valid 'dns' 'DOMAIN' "$domain"
|
||||||
is_object_unsuspended 'dns' 'DOMAIN' "$domain"
|
is_object_unsuspended 'dns' 'DOMAIN' "$domain"
|
||||||
is_dns_template_valid
|
is_dns_template_valid "$template"
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
@ -52,8 +52,31 @@ for nameserver in ${ns//,/ };do
|
||||||
(( ++i))
|
(( ++i))
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Reading template
|
||||||
|
template_data=$(cat $DNSTPL/$template.tpl)
|
||||||
|
|
||||||
|
# Deleting unused nameservers
|
||||||
|
if [ -z "$ns3" ]; then
|
||||||
|
template_data=$(echo "$template_data" |grep -v %ns3%)
|
||||||
|
fi
|
||||||
|
if [ -z "$ns4" ]; then
|
||||||
|
template_data=$(echo "$template_data" |grep -v %ns4%)
|
||||||
|
fi
|
||||||
|
if [ -z "$ns5" ]; then
|
||||||
|
template_data=$(echo "$template_data" |grep -v %ns5%)
|
||||||
|
fi
|
||||||
|
if [ -z "$ns6" ]; then
|
||||||
|
template_data=$(echo "$template_data" |grep -v %ns6%)
|
||||||
|
fi
|
||||||
|
if [ -z "$ns7" ]; then
|
||||||
|
template_data=$(echo "$template_data" |grep -v %ns7%)
|
||||||
|
fi
|
||||||
|
if [ -z "$ns8" ]; then
|
||||||
|
template_data=$(echo "$template_data" |grep -v %ns8%)
|
||||||
|
fi
|
||||||
|
|
||||||
# Changing tpl
|
# Changing tpl
|
||||||
cat $DNSTPL/$template.tpl |\
|
echo "$template_data" |\
|
||||||
sed -e "s/%ip%/$ip/g" \
|
sed -e "s/%ip%/$ip/g" \
|
||||||
-e "s/%domain_idn%/$domain_idn/g" \
|
-e "s/%domain_idn%/$domain_idn/g" \
|
||||||
-e "s/%domain%/$domain/g" \
|
-e "s/%domain%/$domain/g" \
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# info: change ip owner
|
# info: change domain owner
|
||||||
# options: DOMAIN USER [IP]
|
# options: DOMAIN USER
|
||||||
#
|
#
|
||||||
# The function of changing domain ownership.
|
# The function of changing domain ownership.
|
||||||
|
|
||||||
|
@ -12,7 +12,6 @@
|
||||||
# Argument definition
|
# Argument definition
|
||||||
domain=$1
|
domain=$1
|
||||||
user=$2
|
user=$2
|
||||||
ip=$3
|
|
||||||
|
|
||||||
# Includes
|
# Includes
|
||||||
source $VESTA/func/ip.sh
|
source $VESTA/func/ip.sh
|
||||||
|
@ -24,20 +23,13 @@ source $VESTA/conf/vesta.conf
|
||||||
# Verifications #
|
# Verifications #
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
check_args '2' "$#" 'DOMAIN USER [IP]'
|
check_args '2' "$#" 'DOMAIN USER'
|
||||||
is_format_valid 'domain' 'user'
|
is_format_valid 'domain' 'user'
|
||||||
is_object_valid 'user' 'USER' "$user"
|
is_object_valid 'user' 'USER' "$user"
|
||||||
is_object_unsuspended 'user' 'USER' "$user"
|
is_object_unsuspended 'user' 'USER' "$user"
|
||||||
if [ ! -z "$ip" ]; then
|
|
||||||
is_ip_valid
|
|
||||||
is_ip_avalable
|
|
||||||
fi
|
|
||||||
|
|
||||||
owner=$(v-search-domain-owner $domain)
|
owner=$(v-search-domain-owner $domain)
|
||||||
if [ -z "$owner" ]; then
|
if [ -z "$owner" ]; then
|
||||||
echo "Error: domain $domain doesn't exist"
|
check_result $E_NOTEXIST "domain $domain doesn't exist"
|
||||||
log_event "$E_NOTEXIST" "$ARGUMENTS"
|
|
||||||
exit $E_NOTEXIST
|
|
||||||
fi
|
fi
|
||||||
if [ "$owner" = "$user" ]; then
|
if [ "$owner" = "$user" ]; then
|
||||||
exit
|
exit
|
||||||
|
|
|
@ -28,7 +28,7 @@ if [ -z $homedir ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Checking source file
|
# Checking source file
|
||||||
if [ ! -f "$src_file" ]; then
|
if [ ! -fe "$src_file" ]; then
|
||||||
echo "Error: source file doesn't exist $src_file"
|
echo "Error: source file doesn't exist $src_file"
|
||||||
exit 3
|
exit 3
|
||||||
fi
|
fi
|
||||||
|
@ -41,11 +41,11 @@ if [ -z "$(echo $rpath |egrep "^/tmp|^$homedir")" ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Changing file permissions
|
# Changing file permissions
|
||||||
sudo -u $user chmod $permissions "$src_file" >/dev/null 2>&1
|
sudo -u $user chmod -R $permissions "$src_file" >/dev/null 2>&1
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "Error: access permission on $src_file was not changed"
|
echo "Error: access permission on $src_file was not changed"
|
||||||
exit 3
|
exit 3
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Exiting
|
# Exiting
|
||||||
exit
|
exit
|
|
@ -44,7 +44,7 @@ is_password_valid
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
# Generating hashed password
|
# Generating hashed password
|
||||||
salt=$(gen_password "$PW_MATRIX" "8")
|
salt=$(generate_password "$PW_MATRIX" "8")
|
||||||
md5="{MD5}$($BIN/v-generate-password-hash md5 $salt <<<$password)"
|
md5="{MD5}$($BIN/v-generate-password-hash md5 $salt <<<$password)"
|
||||||
|
|
||||||
if [[ "$MAIL_SYSTEM" =~ exim ]]; then
|
if [[ "$MAIL_SYSTEM" =~ exim ]]; then
|
||||||
|
|
|
@ -25,10 +25,8 @@ source $VESTA/conf/vesta.conf
|
||||||
|
|
||||||
check_args '2' "$#" 'IP IP_NAME'
|
check_args '2' "$#" 'IP IP_NAME'
|
||||||
is_format_valid 'ip'
|
is_format_valid 'ip'
|
||||||
if [ ! -z "$ip_name" ]; then
|
is_format_valid 'ip_name'
|
||||||
is_format_valid 'ip_name'
|
is_ip_valid "$ip"
|
||||||
fi
|
|
||||||
is_ip_valid
|
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
|
@ -26,10 +26,8 @@ source $VESTA/conf/vesta.conf
|
||||||
|
|
||||||
check_args '2' "$#" 'IP NAT_IP [RESTART]'
|
check_args '2' "$#" 'IP NAT_IP [RESTART]'
|
||||||
is_format_valid 'ip'
|
is_format_valid 'ip'
|
||||||
if [ ! -z "$nat_ip" ]; then
|
is_format_valid 'nat_ip'
|
||||||
is_format_valid 'nat_ip'
|
is_ip_valid "$ip"
|
||||||
fi
|
|
||||||
is_ip_valid
|
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
|
@ -27,11 +27,10 @@ check_args '2' "$#" 'IP USER'
|
||||||
is_format_valid 'ip' 'user'
|
is_format_valid 'ip' 'user'
|
||||||
is_object_valid 'user' 'USER' "$user"
|
is_object_valid 'user' 'USER' "$user"
|
||||||
is_object_unsuspended 'user' 'USER' "$user"
|
is_object_unsuspended 'user' 'USER' "$user"
|
||||||
is_ip_valid
|
is_ip_valid "$ip"
|
||||||
is_ip_key_empty '$U_WEB_DOMAINS'
|
is_ip_key_empty '$U_WEB_DOMAINS'
|
||||||
is_ip_key_empty '$U_SYS_USERS'
|
is_ip_key_empty '$U_SYS_USERS'
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
# Action #
|
# Action #
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
|
@ -25,7 +25,7 @@ source $VESTA/conf/vesta.conf
|
||||||
|
|
||||||
check_args '2' "$#" 'IP IP_STATUS'
|
check_args '2' "$#" 'IP IP_STATUS'
|
||||||
is_format_valid 'ip' 'ip_status'
|
is_format_valid 'ip' 'ip_status'
|
||||||
is_ip_valid
|
is_ip_valid "$ip"
|
||||||
if [ "$ip_status" = "$(get_ip_value '$STATUS')" ]; then
|
if [ "$ip_status" = "$(get_ip_value '$STATUS')" ]; then
|
||||||
echo "Error: status $ip_status is already set"
|
echo "Error: status $ip_status is already set"
|
||||||
log_event "$E_EXISTS" "$ARGUMENTS"
|
log_event "$E_EXISTS" "$ARGUMENTS"
|
||||||
|
|
|
@ -40,51 +40,37 @@ is_package_avalable() {
|
||||||
# Checking usage agains package limits
|
# Checking usage agains package limits
|
||||||
if [ "$WEB_DOMAINS" != 'unlimited' ]; then
|
if [ "$WEB_DOMAINS" != 'unlimited' ]; then
|
||||||
if [ "$WEB_DOMAINS" -lt "$U_WEB_DOMAINS" ]; then
|
if [ "$WEB_DOMAINS" -lt "$U_WEB_DOMAINS" ]; then
|
||||||
echo "Error: Package doesn't cover WEB_DOMAIN usage"
|
check_result $E_LIMIT "Package doesn't cover WEB_DOMAIN usage"
|
||||||
log_event "$E_LIMIT" "$ARGUMENTS"
|
|
||||||
exit $E_LIMIT
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ "$DNS_DOMAINS" ! = 'unlimited' ]; then
|
if [ "$DNS_DOMAINS" ! = 'unlimited' ]; then
|
||||||
if [ "$DNS_DOMAINS" -lt "$U_DNS_DOMAINS" ]; then
|
if [ "$DNS_DOMAINS" -lt "$U_DNS_DOMAINS" ]; then
|
||||||
echo "Error: Package doesn't cover DNS_DOMAIN usage"
|
check_result $E_LIMIT "Package doesn't cover DNS_DOMAIN usage"
|
||||||
log_event "$E_LIMIT" "$ARGUMENTS"
|
|
||||||
exit $E_LIMIT
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ "$MAIL_DOMAINS" != 'unlimited' ]; then
|
if [ "$MAIL_DOMAINS" != 'unlimited' ]; then
|
||||||
if [ "$MAIL_DOMAINS" -lt "$U_MAIL_DOMAINS" ]; then
|
if [ "$MAIL_DOMAINS" -lt "$U_MAIL_DOMAINS" ]; then
|
||||||
echo "Error: Package doesn't cover MAIL_DOMAIN usage"
|
check_result $E_LIMIT "Package doesn't cover MAIL_DOMAIN usage"
|
||||||
log_event "$E_LIMIT" "$ARGUMENTS"
|
|
||||||
exit $E_LIMIT
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ "$DATABASES" != 'unlimited' ]; then
|
if [ "$DATABASES" != 'unlimited' ]; then
|
||||||
if [ "$DATABASES" -lt "$U_DATABASES" ]; then
|
if [ "$DATABASES" -lt "$U_DATABASES" ]; then
|
||||||
echo "Error: Package doesn't cover DATABASE usage"
|
check_result $E_LIMIT "Package doesn't cover DATABASE usage"
|
||||||
log_event "$E_LIMIT" "$ARGUMENTS"
|
|
||||||
exit $E_LIMIT
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ "$CRON_JOBS" != 'unlimited' ]; then
|
if [ "$CRON_JOBS" != 'unlimited' ]; then
|
||||||
if [ "$CRON_JOBS" -lt "$U_CRON_JOBS" ]; then
|
if [ "$CRON_JOBS" -lt "$U_CRON_JOBS" ]; then
|
||||||
echo "Error: Package doesn't cover CRON usage"
|
check_result $E_LIMIT "Package doesn't cover CRON usage"
|
||||||
log_event "$E_LIMIT" "$ARGUMENTS"
|
|
||||||
exit $E_LIMIT
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ "$DISK_QUOTA" != 'unlimited' ]; then
|
if [ "$DISK_QUOTA" != 'unlimited' ]; then
|
||||||
if [ "$DISK_QUOTA" -lt "$U_DISK" ]; then
|
if [ "$DISK_QUOTA" -lt "$U_DISK" ]; then
|
||||||
echo "Error: Package doesn't cover DISK usage"
|
check_result $E_LIMIT "Package doesn't cover DISK usage"
|
||||||
log_event "$E_LIMIT" "$ARGUMENTS"
|
|
||||||
exit $E_LIMIT
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ "$BANDWIDTH" != 'unlimited' ]; then
|
if [ "$BANDWIDTH" != 'unlimited' ]; then
|
||||||
if [ "$BANDWIDTH" -lt "$U_BANDWIDTH" ]; then
|
if [ "$BANDWIDTH" -lt "$U_BANDWIDTH" ]; then
|
||||||
echo "Error: Package doesn't cover BANDWIDTH usage"
|
check_result $E_LIMIT "Package doesn't cover BANDWIDTH usage"
|
||||||
log_event "$E_LIMIT" "$ARGUMENTS"
|
|
||||||
exit $E_LIMIT
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@ md5=$(awk -v user=$user -F : 'user == $1 {print $2}' /etc/shadow)
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
# Changing RKEY value
|
# Changing RKEY value
|
||||||
update_user_value "$user" '$RKEY' "$(gen_password)"
|
update_user_value "$user" '$RKEY' "$(generate_password)"
|
||||||
update_user_value "$user" '$MD5' "$md5"
|
update_user_value "$user" '$MD5' "$md5"
|
||||||
|
|
||||||
# Logging
|
# Logging
|
||||||
|
|
|
@ -35,11 +35,11 @@ is_object_unsuspended 'user' 'USER' "$user"
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
case $type in
|
case $type in
|
||||||
WEB) is_web_template_valid;
|
WEB) is_web_template_valid $template;
|
||||||
update_user_value "$user" '$WEB_TEMPLATE' "$template";;
|
update_user_value "$user" '$WEB_TEMPLATE' "$template";;
|
||||||
PROXY) is_proxy_template_valid $template;
|
PROXY) is_proxy_template_valid $template;
|
||||||
update_user_value "$user" '$PROXY_TEMPLATE' "$template";;
|
update_user_value "$user" '$PROXY_TEMPLATE' "$template";;
|
||||||
DNS) is_dns_template_valid;
|
DNS) is_dns_template_valid $template;
|
||||||
update_user_value "$user" '$DNS_TEMPLATE' "$template";;
|
update_user_value "$user" '$DNS_TEMPLATE' "$template";;
|
||||||
*) check_args '1' '0' 'USER TYPE TEMPLATE'
|
*) check_args '1' '0' 'USER TYPE TEMPLATE'
|
||||||
esac
|
esac
|
||||||
|
|
|
@ -35,7 +35,7 @@ is_object_valid 'user' 'USER' "$user"
|
||||||
is_object_unsuspended 'user' 'USER' "$user"
|
is_object_unsuspended 'user' 'USER' "$user"
|
||||||
is_object_valid 'web' 'DOMAIN' "$domain"
|
is_object_valid 'web' 'DOMAIN' "$domain"
|
||||||
is_object_unsuspended 'web' 'DOMAIN' "$domain"
|
is_object_unsuspended 'web' 'DOMAIN' "$domain"
|
||||||
is_web_backend_template_valid $template
|
is_backend_template_valid $template
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
|
@ -11,9 +11,8 @@
|
||||||
|
|
||||||
# Argument definition
|
# Argument definition
|
||||||
user=$1
|
user=$1
|
||||||
domain=$(idn -t --quiet -u "$2" )
|
domain=$2
|
||||||
domain_idn=$(idn -t --quiet -a "$domain")
|
ip=$3
|
||||||
new_domain=$(echo $3 |tr '[:upper:]' '[:lower:]')
|
|
||||||
restart=$4
|
restart=$4
|
||||||
|
|
||||||
# Includes
|
# Includes
|
||||||
|
@ -34,8 +33,7 @@ is_object_valid 'user' 'USER' "$user"
|
||||||
is_object_unsuspended 'user' 'USER' "$user"
|
is_object_unsuspended 'user' 'USER' "$user"
|
||||||
is_object_valid 'web' 'DOMAIN' "$domain"
|
is_object_valid 'web' 'DOMAIN' "$domain"
|
||||||
is_object_unsuspended 'web' 'DOMAIN' "$domain"
|
is_object_unsuspended 'web' 'DOMAIN' "$domain"
|
||||||
is_ip_valid
|
is_ip_valid "$ip" "$user"
|
||||||
is_ip_avalable
|
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
@ -46,6 +44,12 @@ is_ip_avalable
|
||||||
get_domain_values 'web'
|
get_domain_values 'web'
|
||||||
old=$(get_real_ip $IP)
|
old=$(get_real_ip $IP)
|
||||||
new=$ip
|
new=$ip
|
||||||
|
if [[ "$domain" = *[![:ascii:]]* ]]; then
|
||||||
|
domain_idn=$(idn -t --quiet -a $domain)
|
||||||
|
else
|
||||||
|
domain_idn=$domain
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Replacing vhost
|
# Replacing vhost
|
||||||
replace_web_config "$WEB_SYSTEM" "$TPL.tpl"
|
replace_web_config "$WEB_SYSTEM" "$TPL.tpl"
|
||||||
|
|
|
@ -48,7 +48,7 @@ is_proxy_template_valid $template
|
||||||
|
|
||||||
# Parsing domain values
|
# Parsing domain values
|
||||||
get_domain_values 'web'
|
get_domain_values 'web'
|
||||||
ip=$(get_real_ip $IP)
|
local_ip=$(get_real_ip $IP)
|
||||||
|
|
||||||
# Delete old vhost
|
# Delete old vhost
|
||||||
del_web_config "$PROXY_SYSTEM" "$PROXY.tpl"
|
del_web_config "$PROXY_SYSTEM" "$PROXY.tpl"
|
||||||
|
|
|
@ -35,7 +35,7 @@ is_object_valid 'user' 'USER' "$user"
|
||||||
is_object_unsuspended 'user' 'USER' "$user"
|
is_object_unsuspended 'user' 'USER' "$user"
|
||||||
is_object_valid 'web' 'DOMAIN' "$domain"
|
is_object_valid 'web' 'DOMAIN' "$domain"
|
||||||
is_object_unsuspended 'web' 'DOMAIN' "$domain"
|
is_object_unsuspended 'web' 'DOMAIN' "$domain"
|
||||||
is_web_template_valid
|
is_web_template_valid "$template"
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
@ -44,7 +44,7 @@ is_web_template_valid
|
||||||
|
|
||||||
# Parsing domain values
|
# Parsing domain values
|
||||||
get_domain_values 'web'
|
get_domain_values 'web'
|
||||||
ip=$(get_real_ip $IP)
|
local_ip=$(get_real_ip $IP)
|
||||||
|
|
||||||
# Deleting domain
|
# Deleting domain
|
||||||
del_web_config "$WEB_SYSTEM" "$TPL.tpl"
|
del_web_config "$WEB_SYSTEM" "$TPL.tpl"
|
||||||
|
@ -53,7 +53,6 @@ if [ "$SSL" = 'yes' ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Defining variables for new vhost config
|
# Defining variables for new vhost config
|
||||||
TPL=$template
|
|
||||||
prepare_web_domain_values
|
prepare_web_domain_values
|
||||||
add_web_config "$WEB_SYSTEM" "$TPL.tpl"
|
add_web_config "$WEB_SYSTEM" "$TPL.tpl"
|
||||||
if [ "$SSL" = 'yes' ]; then
|
if [ "$SSL" = 'yes' ]; then
|
||||||
|
|
|
@ -35,7 +35,7 @@ is_object_unsuspended 'user' 'USER' "$user"
|
||||||
|
|
||||||
# Working on Web domain
|
# Working on Web domain
|
||||||
if [ ! -z "$WEB_SYSTEM" ]; then
|
if [ ! -z "$WEB_SYSTEM" ]; then
|
||||||
str=$(grep "DOMAIN='$domain'" $USER_DATA/web.conf |grep "SUSPENDED='no")
|
str=$(grep "DOMAIN='$domain'" $USER_DATA/web.conf)
|
||||||
if [ ! -z "$str" ]; then
|
if [ ! -z "$str" ]; then
|
||||||
domain_found='yes'
|
domain_found='yes'
|
||||||
$BIN/v-delete-web-domain $user $domain 'no'
|
$BIN/v-delete-web-domain $user $domain 'no'
|
||||||
|
@ -45,7 +45,7 @@ fi
|
||||||
|
|
||||||
# Working on DNS domain
|
# Working on DNS domain
|
||||||
if [ ! -z "$DNS_SYSTEM" ]; then
|
if [ ! -z "$DNS_SYSTEM" ]; then
|
||||||
str=$(grep "DOMAIN='$domain'" $USER_DATA/dns.conf |grep "SUSPENDED='no")
|
str=$(grep "DOMAIN='$domain'" $USER_DATA/dns.conf)
|
||||||
if [ ! -z "$str" ]; then
|
if [ ! -z "$str" ]; then
|
||||||
domain_found='yes'
|
domain_found='yes'
|
||||||
$BIN/v-delete-dns-domain $user $domain 'no'
|
$BIN/v-delete-dns-domain $user $domain 'no'
|
||||||
|
@ -55,7 +55,7 @@ fi
|
||||||
|
|
||||||
# Working on Mail domain
|
# Working on Mail domain
|
||||||
if [ ! -z "$MAIL_SYSTEM" ]; then
|
if [ ! -z "$MAIL_SYSTEM" ]; then
|
||||||
str=$(grep "DOMAIN='$domain'" $USER_DATA/mail.conf |grep "SUSPENDED='no")
|
str=$(grep "DOMAIN='$domain'" $USER_DATA/mail.conf)
|
||||||
if [ ! -z "$str" ]; then
|
if [ ! -z "$str" ]; then
|
||||||
domain_found='yes'
|
domain_found='yes'
|
||||||
$BIN/v-delete-mail-domain $user $domain
|
$BIN/v-delete-mail-domain $user $domain
|
||||||
|
@ -65,9 +65,7 @@ fi
|
||||||
|
|
||||||
# Checking domain search result
|
# Checking domain search result
|
||||||
if [ -z "$domain_found" ]; then
|
if [ -z "$domain_found" ]; then
|
||||||
echo "Error: domain $domain doesn't exist"
|
check_result $E_NOTEXISTS "domain $domain doesn't exist"
|
||||||
log_event "$E_NOTEXIST" "$ARGUMENTS"
|
|
||||||
exit $E_NOTEXIST
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Restarting services
|
# Restarting services
|
||||||
|
|
|
@ -63,12 +63,11 @@ fi
|
||||||
if [ "$restart" = 'yes' ]; then
|
if [ "$restart" = 'yes' ]; then
|
||||||
subj="OpenSSH restart failed"
|
subj="OpenSSH restart failed"
|
||||||
email=$(grep CONTACT $VESTA/data/users/admin/user.conf |cut -f 2 -d \')
|
email=$(grep CONTACT $VESTA/data/users/admin/user.conf |cut -f 2 -d \')
|
||||||
send_mail="$VESTA/web/inc/mail-wrapper.php"
|
|
||||||
/usr/sbin/sshd -t >/dev/null 2>&1
|
/usr/sbin/sshd -t >/dev/null 2>&1
|
||||||
if [ "$?" -ne 0 ]; then
|
if [ "$?" -ne 0 ]; then
|
||||||
mail_text="OpenSSH can not be restarted. Please check config:
|
mail_text="OpenSSH can not be restarted. Please check config:
|
||||||
\n\n$(/usr/sbin/sshd -t)"
|
\n\n$(/usr/sbin/sshd -t)"
|
||||||
echo -e "$mail_text" | $send_mail -s "$subj" $email
|
echo -e "$mail_text" |$SENDMAIL -s "$subj" $email
|
||||||
else
|
else
|
||||||
service ssh restart >/dev/null 2>&1
|
service ssh restart >/dev/null 2>&1
|
||||||
service sshd restart >/dev/null 2>&1
|
service sshd restart >/dev/null 2>&1
|
||||||
|
|
|
@ -38,52 +38,37 @@ fi
|
||||||
# Action #
|
# Action #
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
# Checking web system is enabled
|
# Deleting web domains
|
||||||
if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then
|
if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then
|
||||||
$BIN/v-unsuspend-web-domains $user $restart
|
$BIN/v-unsuspend-web-domains $user $restart
|
||||||
$BIN/v-delete-web-domains $user $restart
|
$BIN/v-delete-web-domains $user $restart
|
||||||
rv="$?"
|
check_result "$?" "web domain deletion failed"
|
||||||
if [ "$rv" -ne '0' ]; then
|
|
||||||
exit $rv
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Checking dns system is enabled
|
# Deleting dns domains
|
||||||
if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then
|
if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then
|
||||||
$BIN/v-unsuspend-dns-domains $user $restart
|
$BIN/v-unsuspend-dns-domains $user $restart
|
||||||
$BIN/v-delete-dns-domains $user $restart
|
$BIN/v-delete-dns-domains $user $restart
|
||||||
rv="$?"
|
check_result "$?" "dns domain deletion failed"
|
||||||
if [ "$rv" -ne '0' ]; then
|
|
||||||
exit $rv
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Checking mail system is enabled
|
# Deleting mail domains
|
||||||
if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
|
if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ]; then
|
||||||
$BIN/v-unsuspend-mail-domains $user
|
$BIN/v-unsuspend-mail-domains $user
|
||||||
$BIN/v-delete-mail-domains $user
|
$BIN/v-delete-mail-domains $user
|
||||||
rv="$?"
|
check_result "$?" "mail domain deletion failed"
|
||||||
if [ "$rv" -ne '0' ]; then
|
|
||||||
exit $rv
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Checking db system is enabled
|
# Deleting databases
|
||||||
if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then
|
if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then
|
||||||
$BIN/v-unsuspend-databases $user
|
$BIN/v-unsuspend-databases $user
|
||||||
$BIN/v-delete-databases $user
|
$BIN/v-delete-databases $user
|
||||||
rv="$?"
|
check_result "$?" "database deletion failed"
|
||||||
if [ "$rv" -ne '0' ]; then
|
|
||||||
exit $rv
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Checking ip
|
# Releasing user ips
|
||||||
$BIN/v-delete-user-ips "$user"
|
$BIN/v-delete-user-ips "$user"
|
||||||
rv="$?"
|
check_result "$?" "user ip release failed"
|
||||||
if [ "$rv" -ne '0' ]; then
|
|
||||||
exit $rv
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Deleteing user pipes
|
# Deleteing user pipes
|
||||||
sed -i "/ $user$/d" $VESTA/data/queue/disk.pipe
|
sed -i "/ $user$/d" $VESTA/data/queue/disk.pipe
|
||||||
|
@ -96,14 +81,13 @@ fi
|
||||||
|
|
||||||
# Deleting system user
|
# Deleting system user
|
||||||
/usr/sbin/userdel -f $user >> /dev/null 2>&1
|
/usr/sbin/userdel -f $user >> /dev/null 2>&1
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
if [ "$?" != 0 ]; then
|
|
||||||
sed -i "/^$user:/d" /etc/passwd
|
sed -i "/^$user:/d" /etc/passwd
|
||||||
sed -i "/^$user:/d" /etc/shadow
|
sed -i "/^$user:/d" /etc/shadow
|
||||||
fi
|
fi
|
||||||
|
|
||||||
/usr/sbin/groupdel $user >> /dev/null 2>&1
|
/usr/sbin/groupdel $user >> /dev/null 2>&1
|
||||||
if [ "$?" != 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
sed -i "/^$user:/d" /etc/group
|
sed -i "/^$user:/d" /etc/group
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -17,15 +17,6 @@ user=$1
|
||||||
domain=$2
|
domain=$2
|
||||||
restart=$3
|
restart=$3
|
||||||
|
|
||||||
# Additional argument formatting
|
|
||||||
if [[ "$domain" =~ [[:upper:]] ]]; then
|
|
||||||
domain=$(echo "$domain" |tr '[:upper:]' '[:lower:]')
|
|
||||||
fi
|
|
||||||
domain_idn="$domain"
|
|
||||||
if [[ "$domain" = *[![:ascii:]]* ]]; then
|
|
||||||
domain_idn=$(idn -t --quiet -a $tmp_alias)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Includes
|
# Includes
|
||||||
source $VESTA/func/main.sh
|
source $VESTA/func/main.sh
|
||||||
source $VESTA/func/domain.sh
|
source $VESTA/func/domain.sh
|
||||||
|
@ -57,6 +48,10 @@ fi
|
||||||
|
|
||||||
# Parsing domain values
|
# Parsing domain values
|
||||||
get_domain_values 'web'
|
get_domain_values 'web'
|
||||||
|
domain_idn="$domain"
|
||||||
|
if [[ "$domain" = *[![:ascii:]]* ]]; then
|
||||||
|
domain_idn=$(idn -t --quiet -a $domain)
|
||||||
|
fi
|
||||||
local_ip=$(get_real_ip $IP)
|
local_ip=$(get_real_ip $IP)
|
||||||
|
|
||||||
# Deleting domain from web.conf
|
# Deleting domain from web.conf
|
||||||
|
|
|
@ -35,11 +35,8 @@ is_object_unsuspended 'user' 'USER' "$user"
|
||||||
is_object_valid 'web' 'DOMAIN' "$domain"
|
is_object_valid 'web' 'DOMAIN' "$domain"
|
||||||
is_object_unsuspended 'web' 'DOMAIN' "$domain"
|
is_object_unsuspended 'web' 'DOMAIN' "$domain"
|
||||||
get_domain_values 'web'
|
get_domain_values 'web'
|
||||||
ip=$(get_real_ip $IP)
|
if [ -z "$(echo $ALIAS |tr ',' '\n' |grep ^$dom_alias$)" ]; then
|
||||||
if [ -z "$(echo $ALIAS | tr ',' '\n' | grep ^$dom_alias$)" ]; then
|
check_result $E_NOTEXIST "alias $dom_alias doesn't exist"
|
||||||
echo "Error: alias $dom_alias doesn't exist"
|
|
||||||
log_event "$E_NOTEXIST" "$ARGUMENTS"
|
|
||||||
exit $E_NOTEXIST
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
@ -48,6 +45,7 @@ fi
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
# Preparing domain values for the template substitution
|
# Preparing domain values for the template substitution
|
||||||
|
local_ip=$(get_real_ip $IP)
|
||||||
ALIAS=$(echo "$ALIAS" |\
|
ALIAS=$(echo "$ALIAS" |\
|
||||||
sed -e "s/,/\n/g"|\
|
sed -e "s/,/\n/g"|\
|
||||||
sed -e "s/^$dom_alias$//g"|\
|
sed -e "s/^$dom_alias$//g"|\
|
||||||
|
|
|
@ -12,7 +12,6 @@
|
||||||
# Argument definition
|
# Argument definition
|
||||||
domain=$1
|
domain=$1
|
||||||
domain=$(echo $domain |sed -e 's/\.*$//g' -e 's/^\.*//g')
|
domain=$(echo $domain |sed -e 's/\.*$//g' -e 's/^\.*//g')
|
||||||
domain=$(echo $domain |tr '[:upper:]' '[:lower:]')
|
|
||||||
domain_alias=$domain
|
domain_alias=$domain
|
||||||
email=$2
|
email=$2
|
||||||
country=$3
|
country=$3
|
||||||
|
@ -70,6 +69,15 @@ is_format_valid 'domain_alias' 'format'
|
||||||
# Action #
|
# Action #
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
|
if [[ "$domain" = *[![:ascii:]]* ]]; then
|
||||||
|
domain_idn=$(idn -t --quiet -a $domain)
|
||||||
|
else
|
||||||
|
domain_idn=$domain
|
||||||
|
fi
|
||||||
|
if [[ "$email" = *[![:ascii:]]* ]]; then
|
||||||
|
email=$(idn -t --quiet -a $email)
|
||||||
|
fi
|
||||||
|
|
||||||
# Create temporary work directory
|
# Create temporary work directory
|
||||||
workdir=$(mktemp -d)
|
workdir=$(mktemp -d)
|
||||||
cd $workdir
|
cd $workdir
|
||||||
|
@ -79,7 +87,7 @@ openssl genrsa $KEY_SIZE > $domain.key 2>/dev/null
|
||||||
|
|
||||||
# Generate the CSR
|
# Generate the CSR
|
||||||
subj="/C=$country/ST=$state/localityName=$city/O=$org"
|
subj="/C=$country/ST=$state/localityName=$city/O=$org"
|
||||||
subj="$subj/organizationalUnitName=$org_unit/commonName=$domain"
|
subj="$subj/organizationalUnitName=$org_unit/commonName=$domain_idn"
|
||||||
subj="$subj/emailAddress=$email"
|
subj="$subj/emailAddress=$email"
|
||||||
if [ -z "$aliases" ]; then
|
if [ -z "$aliases" ]; then
|
||||||
openssl req -sha256\
|
openssl req -sha256\
|
||||||
|
@ -87,7 +95,7 @@ if [ -z "$aliases" ]; then
|
||||||
-batch \
|
-batch \
|
||||||
-subj "$subj" \
|
-subj "$subj" \
|
||||||
-key $domain.key \
|
-key $domain.key \
|
||||||
-out $domain.csr >/dev/null 2>&1
|
-out $domain.csr #>/dev/null 2>&1
|
||||||
else
|
else
|
||||||
for alias in $(echo $domain,$aliases |tr ',' '\n' |sort -u); do
|
for alias in $(echo $domain,$aliases |tr ',' '\n' |sort -u); do
|
||||||
dns_aliases="${dns_aliases}DNS:$alias,"
|
dns_aliases="${dns_aliases}DNS:$alias,"
|
||||||
|
@ -118,6 +126,7 @@ openssl x509 -req -sha256 \
|
||||||
-signkey $domain.key \
|
-signkey $domain.key \
|
||||||
-out $domain.crt >/dev/null 2>&1
|
-out $domain.crt >/dev/null 2>&1
|
||||||
|
|
||||||
|
|
||||||
# Listing certificates
|
# Listing certificates
|
||||||
if [ -e "$domain.crt" ]; then
|
if [ -e "$domain.crt" ]; then
|
||||||
crt=$(cat $domain.crt | sed ':a;N;$!ba;s/\n/\\n/g' )
|
crt=$(cat $domain.crt | sed ':a;N;$!ba;s/\n/\\n/g' )
|
||||||
|
|
|
@ -82,7 +82,7 @@ csv_list() {
|
||||||
|
|
||||||
check_args '1' "$#" 'TEMPLATE [FORMAT]'
|
check_args '1' "$#" 'TEMPLATE [FORMAT]'
|
||||||
is_format_valid 'template'
|
is_format_valid 'template'
|
||||||
is_dns_template_valid
|
is_dns_template_valid "$template"
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
|
@ -18,7 +18,7 @@ source $VESTA/func/main.sh
|
||||||
|
|
||||||
# JSON list function
|
# JSON list function
|
||||||
json_list() {
|
json_list() {
|
||||||
objects=$(echo "$users" |wc -l)
|
objects=$(grep @ /etc/passwd |wc -l)
|
||||||
i=1
|
i=1
|
||||||
echo '['
|
echo '['
|
||||||
while read user; do
|
while read user; do
|
||||||
|
|
|
@ -66,7 +66,7 @@ plain_list() {
|
||||||
# CSV list function
|
# CSV list function
|
||||||
csv_list() {
|
csv_list() {
|
||||||
echo "IP,OWNER,STATUS,NAME,NAT"
|
echo "IP,OWNER,STATUS,NAME,NAT"
|
||||||
for IP in $(ls $VESTA/data/ips/); do
|
for IP in $ips; do
|
||||||
source $VESTA/data/ips/$IP
|
source $VESTA/data/ips/$IP
|
||||||
echo "$IP,$OWNER,$STATUS,$NAME,$NAT"
|
echo "$IP,$OWNER,$STATUS,$NAME,$NAT"
|
||||||
done
|
done
|
||||||
|
@ -88,10 +88,10 @@ is_object_valid 'user' 'USER' "$user"
|
||||||
|
|
||||||
# Defining fileds to select
|
# Defining fileds to select
|
||||||
owner='admin'
|
owner='admin'
|
||||||
owner_ips=$(grep -A 1 "OWNER='$owner'" $VESTA/data/ips/*)
|
owner_ips=$(grep -A 1 -H "OWNER='$owner'" $VESTA/data/ips/*)
|
||||||
owner_ips=$(echo "$owner_ips" |grep "STATUS='shared'")
|
owner_ips=$(echo "$owner_ips" |grep "STATUS='shared'")
|
||||||
owner_ips=$(echo "$owner_ips" |cut -f 7 -d / |cut -f 1 -d -)
|
owner_ips=$(echo "$owner_ips" |cut -f 7 -d / |cut -f 1 -d -)
|
||||||
user_ips=$(grep "OWNER='$user'" $VESTA/data/ips/*)
|
user_ips=$(grep -H "OWNER='$user'" $VESTA/data/ips/*)
|
||||||
user_ips=$(echo "$user_ips" |cut -f 7 -d / |cut -f 1 -d :)
|
user_ips=$(echo "$user_ips" |cut -f 7 -d / |cut -f 1 -d :)
|
||||||
ips=$(echo -e "$user_ips\n$owner_ips" |sort -u |sed "/^$/d")
|
ips=$(echo -e "$user_ips\n$owner_ips" |sort -u |sed "/^$/d")
|
||||||
fields='$IP $OWNER $STATUS $NAME $NAT'
|
fields='$IP $OWNER $STATUS $NAME $NAT'
|
||||||
|
|
|
@ -14,14 +14,13 @@ source $VESTA/func/main.sh
|
||||||
source $VESTA/conf/vesta.conf
|
source $VESTA/conf/vesta.conf
|
||||||
|
|
||||||
send_email_report() {
|
send_email_report() {
|
||||||
send_mail="$VESTA/web/inc/mail-wrapper.php"
|
|
||||||
email=$(grep CONTACT $VESTA/data/users/admin/user.conf)
|
email=$(grep CONTACT $VESTA/data/users/admin/user.conf)
|
||||||
email=$(echo "$email" | cut -f 2 -d "'")
|
email=$(echo "$email" | cut -f 2 -d "'")
|
||||||
tmpfile=$(mktemp)
|
tmpfile=$(mktemp)
|
||||||
subj="$(hostname): $CRON_SYSTEM restart failed"
|
subj="$(hostname): $CRON_SYSTEM restart failed"
|
||||||
service $CRON_SYSTEM configtest >> $tmpfile 2>&1
|
service $CRON_SYSTEM configtest >> $tmpfile 2>&1
|
||||||
service $CRON_SYSTEM restart >> $tmpfile 2>&1
|
service $CRON_SYSTEM restart >> $tmpfile 2>&1
|
||||||
cat $tmpfile | $send_mail -s "$subj" $email
|
cat $tmpfile |$SENDMAIL -s "$subj" $email
|
||||||
rm -f $tmpfile
|
rm -f $tmpfile
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,7 +49,7 @@ if [ $? -ne 0 ]; then
|
||||||
service $CRON_SYSTEM restart >/dev/null 2>&1
|
service $CRON_SYSTEM restart >/dev/null 2>&1
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
send_email_report
|
send_email_report
|
||||||
exit $E_RESTART
|
check_result $E_RESTART "$CRON_SYSTEM restart failed"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -19,15 +19,13 @@ send_email_report() {
|
||||||
else
|
else
|
||||||
dns_conf='/etc/bind/named.conf'
|
dns_conf='/etc/bind/named.conf'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
send_mail="$VESTA/web/inc/mail-wrapper.php"
|
|
||||||
email=$(grep CONTACT $VESTA/data/users/admin/user.conf)
|
email=$(grep CONTACT $VESTA/data/users/admin/user.conf)
|
||||||
email=$(echo "$email" | cut -f 2 -d "'")
|
email=$(echo "$email" | cut -f 2 -d "'")
|
||||||
tmpfile=$(mktemp)
|
tmpfile=$(mktemp)
|
||||||
subj="$(hostname): $DNS_SYSTEM restart failed"
|
subj="$(hostname): $DNS_SYSTEM restart failed"
|
||||||
/usr/sbin/named-checkconf $dns_conf >> $tmpfile 2>&1
|
/usr/sbin/named-checkconf $dns_conf >> $tmpfile 2>&1
|
||||||
service $DNS_SYSTEM restart >> $tmpfile 2>&1
|
service $DNS_SYSTEM restart >> $tmpfile 2>&1
|
||||||
cat $tmpfile | $send_mail -s "$subj" $email
|
cat $tmpfile |$SENDMAIL -s "$subj" $email
|
||||||
rm -f $tmpfile
|
rm -f $tmpfile
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -56,8 +54,7 @@ if [ $? -ne 0 ]; then
|
||||||
service $DNS_SYSTEM restart >/dev/null 2>&1
|
service $DNS_SYSTEM restart >/dev/null 2>&1
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
send_email_report
|
send_email_report
|
||||||
echo "Error: $DNS_SYSTEM restart failed"
|
check_result $E_RESTART "$DNS_SYSTEM restart failed"
|
||||||
exit $E_RESTART
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -14,14 +14,13 @@ source $VESTA/func/main.sh
|
||||||
source $VESTA/conf/vesta.conf
|
source $VESTA/conf/vesta.conf
|
||||||
|
|
||||||
send_email_report() {
|
send_email_report() {
|
||||||
send_mail="$VESTA/web/inc/mail-wrapper.php"
|
|
||||||
email=$(grep CONTACT $VESTA/data/users/admin/user.conf)
|
email=$(grep CONTACT $VESTA/data/users/admin/user.conf)
|
||||||
email=$(echo "$email" | cut -f 2 -d "'")
|
email=$(echo "$email" | cut -f 2 -d "'")
|
||||||
tmpfile=$(mktemp)
|
tmpfile=$(mktemp)
|
||||||
subj="$(hostname): $FTP_SYSTEM restart failed"
|
subj="$(hostname): $FTP_SYSTEM restart failed"
|
||||||
service $FTP_SYSTEM configtest >> $tmpfile 2>&1
|
service $FTP_SYSTEM configtest >> $tmpfile 2>&1
|
||||||
service $FTP_SYSTEM restart >> $tmpfile 2>&1
|
service $FTP_SYSTEM restart >> $tmpfile 2>&1
|
||||||
cat $tmpfile | $send_mail -s "$subj" $email
|
cat $tmpfile |$SENDMAIL -s "$subj" $email
|
||||||
rm -f $tmpfile
|
rm -f $tmpfile
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,8 +47,7 @@ fi
|
||||||
service $FTP_SYSTEM restart >/dev/null 2>&1
|
service $FTP_SYSTEM restart >/dev/null 2>&1
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
send_email_report
|
send_email_report
|
||||||
echo "Error: $FTP_SYSTEM restart failed"
|
check_result $E_RESTART "$FTP_SYSTEM restart failed"
|
||||||
exit $E_RESTART
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Update restart queue
|
# Update restart queue
|
||||||
|
|
|
@ -14,14 +14,13 @@ source $VESTA/func/main.sh
|
||||||
source $VESTA/conf/vesta.conf
|
source $VESTA/conf/vesta.conf
|
||||||
|
|
||||||
send_email_report() {
|
send_email_report() {
|
||||||
send_mail="$VESTA/web/inc/mail-wrapper.php"
|
|
||||||
email=$(grep CONTACT $VESTA/data/users/admin/user.conf)
|
email=$(grep CONTACT $VESTA/data/users/admin/user.conf)
|
||||||
email=$(echo "$email" | cut -f 2 -d "'")
|
email=$(echo "$email" | cut -f 2 -d "'")
|
||||||
tmpfile=$(mktemp)
|
tmpfile=$(mktemp)
|
||||||
subj="$(hostname): $MAIL_SYSTEM restart failed"
|
subj="$(hostname): $MAIL_SYSTEM restart failed"
|
||||||
service $MAIL_SYSTEM configtest >> $tmpfile 2>&1
|
service $MAIL_SYSTEM configtest >> $tmpfile 2>&1
|
||||||
service $MAIL_SYSTEM restart >> $tmpfile 2>&1
|
service $MAIL_SYSTEM restart >> $tmpfile 2>&1
|
||||||
cat $tmpfile | $send_mail -s "$subj" $email
|
cat $tmpfile |$SENDMAIL -s "$subj" $email
|
||||||
rm -f $tmpfile
|
rm -f $tmpfile
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,8 +47,7 @@ fi
|
||||||
service $MAIL_SYSTEM restart >/dev/null 2>&1
|
service $MAIL_SYSTEM restart >/dev/null 2>&1
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
send_email_report
|
send_email_report
|
||||||
echo "Error: $MAIL_SYSTEM restart failed"
|
check_result $E_RESTART "$MAIL_SYSTEM restart failed"
|
||||||
exit $E_RESTART
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Update restart queue
|
# Update restart queue
|
||||||
|
|
|
@ -14,14 +14,13 @@ source $VESTA/func/main.sh
|
||||||
source $VESTA/conf/vesta.conf
|
source $VESTA/conf/vesta.conf
|
||||||
|
|
||||||
send_email_report() {
|
send_email_report() {
|
||||||
send_mail="$VESTA/web/inc/mail-wrapper.php"
|
|
||||||
email=$(grep CONTACT $VESTA/data/users/admin/user.conf)
|
email=$(grep CONTACT $VESTA/data/users/admin/user.conf)
|
||||||
email=$(echo "$email" | cut -f 2 -d "'")
|
email=$(echo "$email" | cut -f 2 -d "'")
|
||||||
tmpfile=$(mktemp)
|
tmpfile=$(mktemp)
|
||||||
subj="$(hostname): $PROXY_SYSTEM restart failed"
|
subj="$(hostname): $PROXY_SYSTEM restart failed"
|
||||||
service $PROXY_SYSTEM configtest >> $tmpfile 2>&1
|
service $PROXY_SYSTEM configtest >> $tmpfile 2>&1
|
||||||
service $PROXY_SYSTEM restart >> $tmpfile 2>&1
|
service $PROXY_SYSTEM restart >> $tmpfile 2>&1
|
||||||
cat $tmpfile | $send_mail -s "$subj" $email
|
cat $tmpfile |$SENDMAIL -s "$subj" $email
|
||||||
rm -f $tmpfile
|
rm -f $tmpfile
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,8 +47,7 @@ fi
|
||||||
service $PROXY_SYSTEM restart >/dev/null 2>&1
|
service $PROXY_SYSTEM restart >/dev/null 2>&1
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
send_email_report
|
send_email_report
|
||||||
echo "Error: $PROXY_SYSTEM restart failed"
|
check_result $E_RESTART "$PROXY_SYSTEM restart failed"
|
||||||
exit $E_RESTART
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Update restart queue
|
# Update restart queue
|
||||||
|
|
|
@ -30,13 +30,13 @@ check_args '1' "$#" 'SERVICE'
|
||||||
if [ "$service" != "iptables" ]; then
|
if [ "$service" != "iptables" ]; then
|
||||||
service $service restart >/dev/null 2>&1
|
service $service restart >/dev/null 2>&1
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
exit $E_RESTART
|
check_result $E_RESTART "$service restart failed"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
$BIN/v-stop-firewall
|
$BIN/v-stop-firewall
|
||||||
$BIN/v-update-firewall
|
$BIN/v-update-firewall
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
exit $E_RESTART
|
check_result $E_RESTART "$service restart failed"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -14,14 +14,13 @@ source $VESTA/func/main.sh
|
||||||
source $VESTA/conf/vesta.conf
|
source $VESTA/conf/vesta.conf
|
||||||
|
|
||||||
send_email_report() {
|
send_email_report() {
|
||||||
send_mail="$VESTA/web/inc/mail-wrapper.php"
|
|
||||||
email=$(grep CONTACT $VESTA/data/users/admin/user.conf)
|
email=$(grep CONTACT $VESTA/data/users/admin/user.conf)
|
||||||
email=$(echo "$email" | cut -f 2 -d "'")
|
email=$(echo "$email" | cut -f 2 -d "'")
|
||||||
tmpfile=$(mktemp)
|
tmpfile=$(mktemp)
|
||||||
subj="$(hostname): $WEB_SYSTEM restart failed"
|
subj="$(hostname): $WEB_SYSTEM restart failed"
|
||||||
service $WEB_SYSTEM configtest >> $tmpfile 2>&1
|
service $WEB_SYSTEM configtest >> $tmpfile 2>&1
|
||||||
service $WEB_SYSTEM restart >> $tmpfile 2>&1
|
service $WEB_SYSTEM restart >> $tmpfile 2>&1
|
||||||
cat $tmpfile | $send_mail -s "$subj" $email
|
cat $tmpfile |$SENDMAIL -s "$subj" $email
|
||||||
rm -f $tmpfile
|
rm -f $tmpfile
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,8 +61,7 @@ if [ "$rc" -ne 0 ]; then
|
||||||
service $WEB_SYSTEM restart >/dev/null 2>&1
|
service $WEB_SYSTEM restart >/dev/null 2>&1
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
send_email_report
|
send_email_report
|
||||||
echo "Error: $WEB_SYSTEM restart failed"
|
check_result $E_RESTART "$WEB_SYSTEM restart failed"
|
||||||
exit $E_RESTART
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -14,14 +14,13 @@ source $VESTA/func/main.sh
|
||||||
source $VESTA/conf/vesta.conf
|
source $VESTA/conf/vesta.conf
|
||||||
|
|
||||||
send_email_report() {
|
send_email_report() {
|
||||||
send_mail="$VESTA/web/inc/mail-wrapper.php"
|
|
||||||
email=$(grep CONTACT $VESTA/data/users/admin/user.conf)
|
email=$(grep CONTACT $VESTA/data/users/admin/user.conf)
|
||||||
email=$(echo "$email" | cut -f 2 -d "'")
|
email=$(echo "$email" | cut -f 2 -d "'")
|
||||||
tmpfile=$(mktemp)
|
tmpfile=$(mktemp)
|
||||||
subj="$(hostname): $WEB_BACKEND restart failed"
|
subj="$(hostname): $WEB_BACKEND restart failed"
|
||||||
service $WEB_BACKEND configtest >> $tmpfile 2>&1
|
service $WEB_BACKEND configtest >> $tmpfile 2>&1
|
||||||
service $WEB_BACKEND restart >> $tmpfile 2>&1
|
service $WEB_BACKEND restart >> $tmpfile 2>&1
|
||||||
cat $tmpfile | $send_mail -s "$subj" $email
|
cat $tmpfile |$SENDMAIL -s "$subj" $email
|
||||||
rm -f $tmpfile
|
rm -f $tmpfile
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,8 +47,7 @@ fi
|
||||||
service $WEB_BACKEND restart >/dev/null 2>&1
|
service $WEB_BACKEND restart >/dev/null 2>&1
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
send_email_report
|
send_email_report
|
||||||
echo "Error: $WEB_BACKEND restart failed"
|
check_result $E_RESTART "$WEB_BACKEND restart failed"
|
||||||
exit $E_RESTART
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Update restart queue
|
# Update restart queue
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -43,7 +43,7 @@ is_object_unsuspended 'web' 'DOMAIN' "$domain"
|
||||||
# Parsing domain values
|
# Parsing domain values
|
||||||
get_domain_values 'web'
|
get_domain_values 'web'
|
||||||
SUSPENDED='yes'
|
SUSPENDED='yes'
|
||||||
ip=$(get_real_ip $IP)
|
local_ip=$(get_real_ip $IP)
|
||||||
|
|
||||||
# Preparing domain values for the template substitution
|
# Preparing domain values for the template substitution
|
||||||
prepare_web_domain_values
|
prepare_web_domain_values
|
||||||
|
|
|
@ -41,7 +41,7 @@ is_object_suspended 'web' 'DOMAIN' "$domain"
|
||||||
# Parsing domain values
|
# Parsing domain values
|
||||||
get_domain_values 'web'
|
get_domain_values 'web'
|
||||||
SUSPENDED='no'
|
SUSPENDED='no'
|
||||||
ip=$(get_real_ip $IP)
|
local_ip=$(get_real_ip $IP)
|
||||||
|
|
||||||
# Preparing domain values for the template substitution
|
# Preparing domain values for the template substitution
|
||||||
prepare_web_domain_values
|
prepare_web_domain_values
|
||||||
|
|
|
@ -25,7 +25,7 @@ source $VESTA/conf/vesta.conf
|
||||||
tmpdir=$(mktemp -d --dry-run)
|
tmpdir=$(mktemp -d --dry-run)
|
||||||
mkdir $tmpdir
|
mkdir $tmpdir
|
||||||
cd $tmpdir
|
cd $tmpdir
|
||||||
wget http://c.vestacp.com/$VERSION/rhel/templates.tar.gz -q
|
wget http://c.vestacp.com/rhel/7/templates.tar.gz -q
|
||||||
if [ "$?" -ne 0 ]; then
|
if [ "$?" -ne 0 ]; then
|
||||||
echo "Error: can't download template.tar.gz"
|
echo "Error: can't download template.tar.gz"
|
||||||
log_event "$E_CONNECT" "$ARGUMENTS"
|
log_event "$E_CONNECT" "$ARGUMENTS"
|
||||||
|
|
|
@ -19,9 +19,7 @@ source $VESTA/conf/vesta.conf
|
||||||
|
|
||||||
is_file_available() {
|
is_file_available() {
|
||||||
if [ ! -e "$vfile" ]; then
|
if [ ! -e "$vfile" ]; then
|
||||||
echo "Error: file $vfile doesn't exist"
|
check_result $E_NOTEXIST "file $vfile doesn't exist"
|
||||||
log_event "$E_NOTEXIST" "$ARGUMENTS"
|
|
||||||
exit $E_NOTEXIST
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,9 +27,7 @@ is_file_valid() {
|
||||||
exclude="[!$#&;()\]"
|
exclude="[!$#&;()\]"
|
||||||
vcontent=$(cat $vfile)
|
vcontent=$(cat $vfile)
|
||||||
if [[ "$vcontent" =~ $exclude ]]; then
|
if [[ "$vcontent" =~ $exclude ]]; then
|
||||||
echo "Error: invalid characters in the exlusion list"
|
check_result $E_INVALID "invalid characters in the exlusion list"
|
||||||
log_event "$E_INVALID" "$ARGUMENTS"
|
|
||||||
exit $E_INVALID
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,278 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# info: update user backups
|
|
||||||
# options: USER
|
|
||||||
#
|
|
||||||
# The function rescan backup directory and updates backup database.
|
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
|
||||||
# Variable&Function #
|
|
||||||
#----------------------------------------------------------#
|
|
||||||
|
|
||||||
# Includes
|
|
||||||
source $VESTA/func/main.sh
|
|
||||||
source $VESTA/conf/vesta.conf
|
|
||||||
|
|
||||||
# Argument definition
|
|
||||||
user=$1
|
|
||||||
type="${2-$BACKUP_SYSTEM}"
|
|
||||||
|
|
||||||
# Defining tar parser function
|
|
||||||
get_backup_info() {
|
|
||||||
backup=$1
|
|
||||||
backup_type="$2"
|
|
||||||
|
|
||||||
backup_name=$(basename $backup )
|
|
||||||
backup_date=$(echo $backup_name |cut -f 2 -d '.' )
|
|
||||||
backup_time=$(stat --printf=%y $backup |cut -f 2 -d ' ' |cut -f 1 -d '.')
|
|
||||||
backup_size=$(du -sm $backup |cut -f 1 )
|
|
||||||
backup_data=$(tar -tf $backup)
|
|
||||||
|
|
||||||
vst_data=$(echo "$backup_data" |grep "^./vesta/" |grep -v "^./vesta/$")
|
|
||||||
if [ -z "$vst_data" ]; then
|
|
||||||
vst=''
|
|
||||||
else
|
|
||||||
vst='yes'
|
|
||||||
fi
|
|
||||||
|
|
||||||
pam_data=$(echo "$backup_data" |grep "^./pam/" |grep -v "^./pam/$")
|
|
||||||
if [ -z "$pam_data" ]; then
|
|
||||||
pam=''
|
|
||||||
else
|
|
||||||
pam='yes'
|
|
||||||
fi
|
|
||||||
|
|
||||||
web_data=$(echo "$backup_data" |grep "^./web/" |grep -v "^./web/$" |sort)
|
|
||||||
if [ -z "$web_data" ]; then
|
|
||||||
web=''
|
|
||||||
else
|
|
||||||
i=1
|
|
||||||
for domain in $web_data; do
|
|
||||||
domain="$(basename $domain |sed 's/.tar.gz$//')"
|
|
||||||
if [ "$i" -eq 1 ]; then
|
|
||||||
web="$domain"
|
|
||||||
i=2
|
|
||||||
else
|
|
||||||
web="$web,$domain"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
dns_data=$(echo "$backup_data" |grep "^./dns/" |grep ".db$" |sort)
|
|
||||||
if [ -z "$dns_data" ]; then
|
|
||||||
dns=''
|
|
||||||
else
|
|
||||||
i=1
|
|
||||||
for domain in $dns_data; do
|
|
||||||
domain="$(basename $domain |sed 's/.db$//')"
|
|
||||||
if [ "$i" -eq 1 ]; then
|
|
||||||
dns="$domain"
|
|
||||||
i=2
|
|
||||||
else
|
|
||||||
dns="$dns,$domain"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
mail_data=$(echo "$backup_data"|grep "^./mail/"|grep -v "^./mail/$"|sort)
|
|
||||||
if [ -z "$mail_data" ]; then
|
|
||||||
ml=''
|
|
||||||
else
|
|
||||||
i=1
|
|
||||||
for domain in $mail_data; do
|
|
||||||
domain="$(basename $domain |sed 's/.tar.gz$//')"
|
|
||||||
if [ "$i" -eq 1 ]; then
|
|
||||||
ml="$domain"
|
|
||||||
i=2
|
|
||||||
else
|
|
||||||
ml="$ml,$domain"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
db_data=$(echo "$backup_data"|grep "^./db/"|grep ".sql.gz$"|sort)
|
|
||||||
if [ -z "$db_data" ]; then
|
|
||||||
db=''
|
|
||||||
else
|
|
||||||
i=1
|
|
||||||
for dbase in $db_data; do
|
|
||||||
dbase=$(basename $dbase |sed "s/.\(my\|pg\)sql.sql.gz$//")
|
|
||||||
if [ "$i" -eq 1 ]; then
|
|
||||||
db="$dbase"
|
|
||||||
i=2
|
|
||||||
else
|
|
||||||
db="$db,$dbase"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
ssl_data=$(echo "$backup_data"|grep "^./ssl/"|grep ".crt$"|sort)
|
|
||||||
if [ -z "$ssl_data" ]; then
|
|
||||||
ssl=''
|
|
||||||
else
|
|
||||||
i=1
|
|
||||||
for certificate in $ssl_data; do
|
|
||||||
certificate=$(basename $certificate |sed "s/.crt$//")
|
|
||||||
if [ "$i" -eq 1 ]; then
|
|
||||||
ssl="$certificate"
|
|
||||||
i=2
|
|
||||||
else
|
|
||||||
ssl="$ssl,$certificate"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
cron_data=$(echo "$backup_data" |grep "^./cron/" |grep -v "^./cron/$")
|
|
||||||
if [ -z "$cron_data" ]; then
|
|
||||||
cron=''
|
|
||||||
else
|
|
||||||
cron='yes'
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo -n "DATE='$backup_date' TIME='$backup_time' RUNTIME='0'"
|
|
||||||
echo -n " SIZE='$backup_size' TYPE='$backup_type' VESTA='$vst' PAM='$pam'"
|
|
||||||
echo " WEB='$web' DNS='$dns' MAIL='$ml' DB='$db' SSL='$ssl' CRON='$cron'"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Defining ftp command function
|
|
||||||
ftpc() {
|
|
||||||
ftp -n $HOST $PORT <<EOF
|
|
||||||
quote USER $USERNAME
|
|
||||||
quote PASS $PASSWORD
|
|
||||||
binary
|
|
||||||
cd $BPATH
|
|
||||||
$1
|
|
||||||
quit
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
init_ftp_variables() {
|
|
||||||
source $VESTA/conf/ftp.backup.conf
|
|
||||||
if [ -z "$HOST" ] || [ -z "$USERNAME" ] || [ -z "$PASSWORD" ] ||\
|
|
||||||
[ -z "$BPATH" ]; then
|
|
||||||
echo "Error: Parsing error"
|
|
||||||
log_event "$E_PARSING" "$ARGUMENTS"
|
|
||||||
exit $E_PARSING
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
check_ftp_connection(){
|
|
||||||
ftmpdir=$(mktemp -u -p $BPATH)
|
|
||||||
command="mkdir $ftmpdir
|
|
||||||
ls $ftmpdir
|
|
||||||
rm $ftmpdir"
|
|
||||||
if [ ! -z "$(ftpc "$command")" ] ; then
|
|
||||||
echo "Error: FTP error"
|
|
||||||
log_event "$E_FTP" "$ARGUMENTS"
|
|
||||||
exit $E_FTP
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
|
||||||
# Verifications #
|
|
||||||
#----------------------------------------------------------#
|
|
||||||
|
|
||||||
check_args '1' "$#" 'USER'
|
|
||||||
is_system_enabled "$BACKUP_SYSTEM" 'BACKUP_SYSTEM'
|
|
||||||
is_format_valid 'user'
|
|
||||||
is_object_valid 'user' 'USER' "$user"
|
|
||||||
la=$(cat /proc/loadavg |cut -f 1 -d ' '|cut -f 1 -d '.')
|
|
||||||
if [ "$la" -ge "$BACKUP_LA_LIMIT" ]; then
|
|
||||||
log_event "$E_LA" "$ARGUMENTS"
|
|
||||||
exit $E_LA
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
|
||||||
# Action #
|
|
||||||
#----------------------------------------------------------#
|
|
||||||
|
|
||||||
# Checking tmp file
|
|
||||||
tmp_file="$USER_DATA/backup.conf_tmp"
|
|
||||||
if [ -e "$tmp_file" ]; then
|
|
||||||
rm -f $tmp_file
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Checking local
|
|
||||||
if [ "$type" = 'local' ]; then
|
|
||||||
backups=$(ls $BACKUP |grep "^$user."|sort)
|
|
||||||
for backup in $backups; do
|
|
||||||
get_backup_info $BACKUP/$backup $type >> $tmp_file
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Checking ftp
|
|
||||||
if [ "$type" = 'ftp' ]; then
|
|
||||||
tmpdir=$(mktemp -p $BACKUP -d)
|
|
||||||
ftmpdir=$(basename $tmpdir)
|
|
||||||
init_ftp_variables
|
|
||||||
check_ftp_connection
|
|
||||||
backups=$(ftpc ls|awk '{print $9}'|grep "^$user.")
|
|
||||||
|
|
||||||
for backup in $backups; do
|
|
||||||
cd $tmpdir
|
|
||||||
if [ ! -z "$(ftpc "get $backup")" ]; then
|
|
||||||
echo "Error: FTP transfer error"
|
|
||||||
log_event "$E_FTP" "$ARGUMENTS"
|
|
||||||
exit $E_FTP
|
|
||||||
fi
|
|
||||||
get_backup_info $tmpdir/$backup $type >> $tmp_file
|
|
||||||
rm -f $tmpdir/$backup
|
|
||||||
done
|
|
||||||
rm -rf $tmpdir
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Checking both local and ftp
|
|
||||||
if [ "$type" = 'ftp,local' ] || [ "$type" = 'local,ftp' ]; then
|
|
||||||
|
|
||||||
tmpdir=$(mktemp -p $BACKUP -d)
|
|
||||||
ftmpdir=$(basename $tmpdir)
|
|
||||||
init_ftp_variables
|
|
||||||
check_ftp_connection
|
|
||||||
ftp_backups=$(ftpc ls|awk '{print $9}'|grep "^$user.")
|
|
||||||
local_backups=$(ls $BACKUP/ |grep "^$user." |sort)
|
|
||||||
backups=$(echo -e "$local_backups\n$ftp_backups" |\
|
|
||||||
sort |uniq -c | awk '{print $1" "$2}')
|
|
||||||
|
|
||||||
for backup in $(echo "$backups"|grep "^1 "|cut -f 2 -d ' '); do
|
|
||||||
check_ftp=$(echo $ftp_backups|grep -w $backup)
|
|
||||||
if [ ! -z "$check_ftp" ]; then
|
|
||||||
cd $tmpdir
|
|
||||||
if [ ! -z "$(ftpc "get $backup")" ]; then
|
|
||||||
echo "Error: FTP transfer error"
|
|
||||||
log_event "$E_FTP" "$ARGUMENTS"
|
|
||||||
exit $E_FTP
|
|
||||||
fi
|
|
||||||
get_backup_info $tmpdir/$backup ftp >> $tmp_file
|
|
||||||
rm -f $tmpdir/$backup
|
|
||||||
else
|
|
||||||
get_backup_info $BACKUP/$backup local >> $tmp_file
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
for backup in $(echo "$backups"|grep "^2 "|cut -f 2 -d ' '); do
|
|
||||||
get_backup_info $BACKUP/$backup $type >> $tmp_file
|
|
||||||
done
|
|
||||||
rm -rf $tmpdir
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Checking if there was any output
|
|
||||||
if [ -e "$tmp_file" ]; then
|
|
||||||
cat $tmp_file | sort > $USER_DATA/backup.conf
|
|
||||||
rm $tmp_file
|
|
||||||
else
|
|
||||||
rm $USER_DATA/backup.conf
|
|
||||||
touch $USER_DATA/backup.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
|
||||||
# Vesta #
|
|
||||||
#----------------------------------------------------------#
|
|
||||||
|
|
||||||
# Logging
|
|
||||||
log_event "$OK" "$ARGUMENTS"
|
|
||||||
|
|
||||||
exit
|
|
|
@ -43,9 +43,7 @@ get_domain_values 'web'
|
||||||
# Checking config
|
# Checking config
|
||||||
config="$HOMEDIR/$user/conf/web/$STATS.$domain.conf"
|
config="$HOMEDIR/$user/conf/web/$STATS.$domain.conf"
|
||||||
if [ ! -e "$config" ]; then
|
if [ ! -e "$config" ]; then
|
||||||
echo "Error: Parsing error"
|
check_result $E_NOTEXISTS "$config doesn't exist"
|
||||||
log_event "$E_PARSING" "$ARGUMENTS"
|
|
||||||
exit $E_PARSING
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Checking statistics directory
|
# Checking statistics directory
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue