mirror of
https://github.com/myvesta/vesta
synced 2025-08-14 18:49:21 -07:00
backup/restore procedure
This commit is contained in:
parent
236448303c
commit
e23249a997
29 changed files with 1638 additions and 583 deletions
|
@ -18,6 +18,7 @@ source $VESTA/conf/vesta.conf
|
|||
source $VESTA/func/main.sh
|
||||
source $VESTA/func/domain.sh
|
||||
source $VESTA/func/ip.sh
|
||||
source $VESTA/func/rebuild.sh
|
||||
|
||||
|
||||
#----------------------------------------------------------#
|
||||
|
@ -50,195 +51,7 @@ rm -f $HOMEDIR/$user/conf/tmp_*.conf
|
|||
# Starting loop
|
||||
for domain in $(shell_list); do
|
||||
((++ domain_counter))
|
||||
|
||||
# Rebuilding directories
|
||||
mkdir -p $HOMEDIR/$user/web/$domain \
|
||||
$HOMEDIR/$user/web/$domain/public_html \
|
||||
$HOMEDIR/$user/web/$domain/public_shtml \
|
||||
$HOMEDIR/$user/web/$domain/document_errors \
|
||||
$HOMEDIR/$user/web/$domain/cgi-bin \
|
||||
$HOMEDIR/$user/web/$domain/private \
|
||||
$HOMEDIR/$user/web/$domain/stats \
|
||||
$HOMEDIR/$user/web/$domain/logs
|
||||
|
||||
ln -f -s /var/log/httpd/domains/$domain.log \
|
||||
$HOMEDIR/$user/web/$domain/logs/$domain.log
|
||||
ln -f -s /var/log/httpd/domains/$domain.error.log \
|
||||
$HOMEDIR/$user/web/$domain/logs/$domain.error.log
|
||||
|
||||
if [ ! -e "$WEBTPL/skel/document_errors/" ]; then
|
||||
cp -r $WEBTPL/skel/document_errors/ $HOMEDIR/$user/web/$domain/
|
||||
fi
|
||||
|
||||
touch /var/log/httpd/domains/$domain.bytes \
|
||||
/var/log/httpd/domains/$domain.log \
|
||||
/var/log/httpd/domains/$domain.error.log
|
||||
|
||||
chmod 551 $HOMEDIR/$user/web/$domain
|
||||
chmod 751 $HOMEDIR/$user/web/$domain/private
|
||||
chmod 751 $HOMEDIR/$user/web/$domain/cgi-bin
|
||||
chmod 751 $HOMEDIR/$user/web/$domain/public_html
|
||||
chmod 751 $HOMEDIR/$user/web/$domain/public_shtml
|
||||
chmod 751 $HOMEDIR/$user/web/$domain/document_errors
|
||||
chmod 551 $HOMEDIR/$user/web/$domain/stats
|
||||
chmod 551 $HOMEDIR/$user/web/$domain/logs
|
||||
chmod 640 /var/log/httpd/domains/$domain.*
|
||||
|
||||
chown $user:$user $HOMEDIR/$user/web/$domain
|
||||
chown $user:$user $HOMEDIR/$user/web/$domain/private
|
||||
chown $user:$user $HOMEDIR/$user/web/$domain/cgi-bin
|
||||
chown $user:$user $HOMEDIR/$user/web/$domain/public_html
|
||||
chown $user:$user $HOMEDIR/$user/web/$domain/public_shtml
|
||||
chown -R $user:$user $HOMEDIR/$user/web/$domain/document_errors
|
||||
chown root:$user /var/log/httpd/domains/$domain.*
|
||||
chown root:apache $conf
|
||||
|
||||
# Parsing domain values
|
||||
domain_idn=$(idn -t --quiet -a "$domain")
|
||||
get_domain_values 'web'
|
||||
ip=$(get_real_ip $IP)
|
||||
|
||||
# Preparing domain values for the template substitution
|
||||
upd_web_domain_values
|
||||
|
||||
# Adding domain to the tmp_httpd.conf
|
||||
tpl_file="$WEBTPL/apache_$TPL.tpl"
|
||||
conf="$HOMEDIR/$user/conf/web/tmp_httpd.conf"
|
||||
add_web_config
|
||||
chown root:apache $conf
|
||||
chmod 640 $conf
|
||||
|
||||
# Running template trigger
|
||||
if [ -x $WEBTPL/apache_$TPL.sh ]; then
|
||||
$WEBTPL/apache_$TPL.sh $user $domain $ip $HOMEDIR $docroot
|
||||
fi
|
||||
|
||||
# Checking aliases
|
||||
if [ ! -z "$ALIAS" ]; then
|
||||
aliases=$(echo "$ALIAS"|tr ',' '\n'| wc -l)
|
||||
user_aliases=$((user_aliases + aliases))
|
||||
fi
|
||||
|
||||
# Checking stats
|
||||
if [ ! -z "$STATS" ]; then
|
||||
cat $WEBTPL/$STATS.tpl |\
|
||||
sed -e "s/%ip%/$ip/g" \
|
||||
-e "s/%web_port%/$WEB_PORT/g" \
|
||||
-e "s/%web_ssl_port%/$WEB_SSL_PORT/g" \
|
||||
-e "s/%proxy_port%/$PROXY_PORT/g" \
|
||||
-e "s/%proxy_ssl_port%/$PROXY_SSL_PORT/g" \
|
||||
-e "s/%domain_idn%/$domain_idn/g" \
|
||||
-e "s/%domain%/$domain/g" \
|
||||
-e "s/%user%/$user/g" \
|
||||
-e "s/%home%/${HOMEDIR////\/}/g" \
|
||||
-e "s/%alias%/${aliases//,/ }/g" \
|
||||
-e "s/%alias_idn%/${aliases_idn//,/ }/g" \
|
||||
> $HOMEDIR/$user/conf/web/$STATS.$domain.conf
|
||||
|
||||
|
||||
if [ "$STATS" == 'awstats' ]; then
|
||||
if [ ! -e "/etc/awstats/$STATS.$domain_idn.conf" ]; then
|
||||
ln -s $HOMEDIR/$user/conf/web/$STATS.$domain.conf \
|
||||
/etc/awstats/$STATS.$domain_idn.conf
|
||||
fi
|
||||
fi
|
||||
|
||||
webstats="$BIN/v-update-web-domain-stat $user $domain"
|
||||
check_webstats=$(grep "$webstats" $VESTA/data/queue/webstats.pipe)
|
||||
if [ -z "$check_webstats" ]; then
|
||||
echo "$webstats" >> $VESTA/data/queue/webstats.pipe
|
||||
fi
|
||||
|
||||
if [ ! -z "$STATS_USER" ]; then
|
||||
# Definining statistic dir
|
||||
stats_dir="$HOMEDIR/$user/web/$domain/stats"
|
||||
|
||||
# Adding htaccess file
|
||||
echo "AuthUserFile $stats_dir/.htpasswd" > $stats_dir/.htaccess
|
||||
echo "AuthName \"Web Statistics\"" >> $stats_dir/.htaccess
|
||||
echo "AuthType Basic" >> $stats_dir/.htaccess
|
||||
echo "Require valid-user" >> $stats_dir/.htaccess
|
||||
|
||||
# Generating htaccess user and password
|
||||
echo "$STATS_USER:$STATS_CRYPT" > $stats_dir/.htpasswd
|
||||
fi
|
||||
fi
|
||||
|
||||
# Checking ssl
|
||||
if [ "$SSL" = 'yes' ]; then
|
||||
# Adding domain to the shttpd.conf
|
||||
conf="$HOMEDIR/$user/conf/web/tmp_shttpd.conf"
|
||||
tpl_file="$WEBTPL/apache_$TPL.stpl"
|
||||
add_web_config
|
||||
chown root:apache $conf
|
||||
chmod 640 $conf
|
||||
|
||||
cp -f $USER_DATA/ssl/$domain.crt \
|
||||
$HOMEDIR/$user/conf/web/ssl.$domain.crt
|
||||
cp -f $USER_DATA/ssl/$domain.key \
|
||||
$HOMEDIR/$user/conf/web/ssl.$domain.key
|
||||
cp -f $USER_DATA/ssl/$domain.pem \
|
||||
$HOMEDIR/$user/conf/web/ssl.$domain.pem
|
||||
if [ -e "$USER_DATA/ssl/$domain.ca" ]; then
|
||||
cp -f $USER_DATA/ssl/$domain.ca \
|
||||
$HOMEDIR/$user/conf/web/ssl.$domain.ca
|
||||
fi
|
||||
|
||||
# Running template trigger
|
||||
if [ -x $WEBTPL/apache_$TPL.sh ]; then
|
||||
$WEBTPL/apache_$TPL.sh $user $domain $ip $HOMEDIR $sdocroot
|
||||
fi
|
||||
|
||||
user_ssl=$((user_ssl + 1))
|
||||
ssl_change='yes'
|
||||
fi
|
||||
|
||||
# Checking nginx
|
||||
if [ ! -z "$NGINX" ]; then
|
||||
tpl_file="$WEBTPL/nginx_$NGINX.tpl"
|
||||
conf="$HOMEDIR/$user/conf/web/tmp_nginx.conf"
|
||||
add_web_config
|
||||
chown root:nginx $conf
|
||||
chmod 640 $conf
|
||||
|
||||
if [ "$SSL" = 'yes' ]; then
|
||||
tpl_file="$WEBTPL/nginx_$NGINX.stpl"
|
||||
conf="$HOMEDIR/$user/conf/web/tmp_snginx.conf"
|
||||
add_web_config
|
||||
chown root:nginx $conf
|
||||
chmod 640 $conf
|
||||
fi
|
||||
ngix_change='yes'
|
||||
fi
|
||||
if [ "$SUSPENDED" = 'yes' ]; then
|
||||
suspended_web=$((suspended_web + 1))
|
||||
fi
|
||||
user_domains=$((user_domains + 1))
|
||||
|
||||
# Checking ftp
|
||||
if [ ! -z "$FTP_USER" ]; then
|
||||
if [ -z "$(grep ^$FTP_USER: /etc/passwd)" ]; then
|
||||
/usr/sbin/adduser -o -u $(id -u $user) -g $user -s /sbin/nologin \
|
||||
-M -d "$HOMEDIR/$user/web/$domain" $FTP_USER > /dev/null 2>&1
|
||||
|
||||
shadow='/etc/shadow'
|
||||
shdw=$(grep "^$FTP_USER:" $shadow)
|
||||
shdw3=$(echo "$shdw" | cut -f3 -d :)
|
||||
shdw4=$(echo "$shdw" | cut -f4 -d :)
|
||||
shdw5=$(echo "$shdw" | cut -f5 -d :)
|
||||
shdw6=$(echo "$shdw" | cut -f6 -d :)
|
||||
shdw7=$(echo "$shdw" | cut -f7 -d :)
|
||||
shdw8=$(echo "$shdw" | cut -f8 -d :)
|
||||
shdw9=$(echo "$shdw" | cut -f9 -d :)
|
||||
chmod u+w $shadow
|
||||
sed -i "/^$FTP_USER:*/d" $shadow
|
||||
shdw_str="$FTP_USER:$FTP_MD5:$shdw3:$shdw4:$shdw5:$shdw6"
|
||||
shdw_str="$shdw_str:$shdw7:$shdw8:$shdw9"
|
||||
echo "$shdw_str" >> $shadow
|
||||
chmod u-w $shadow
|
||||
fi
|
||||
fi
|
||||
|
||||
rebuild_web_domain_conf
|
||||
done
|
||||
|
||||
# Config path
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue