added mail support in backup system

This commit is contained in:
Serghey Rodin 2012-04-29 16:18:29 +03:00
parent 46e0bc239b
commit 1e34f90db6
3 changed files with 74 additions and 22 deletions

View file

@ -133,20 +133,16 @@ then
for domain in $web_list; do for domain in $web_list; do
echo -e "$(date "+%F %T") $domain" echo -e "$(date "+%F %T") $domain"
mkdir -p $tmpdir/web/$domain/conf mkdir -p $tmpdir/web/$domain/conf
mkdir -p $tmpdir/web/$domain/vesta
# Defining domain variables # Defining domain variables
domain_idn=$(idn -t --quiet -a "$domain") domain_idn=$(idn -t --quiet -a "$domain")
get_domain_values 'web' get_domain_values 'web'
# Packing data folders
cd $HOMEDIR/$user/web/$domain
domain_direcotries=$(ls |grep -v logs)
tar -cf $tmpdir/web/$domain/$domain.tar $domain_direcotries
# Creating web.config # Creating web.config
cd $tmpdir/web/$domain/ cd $tmpdir/web/$domain/
conf="$USER_DATA/web.conf" conf="$USER_DATA/web.conf"
grep "DOMAIN='$domain'" $conf > conf/vesta.conf grep "DOMAIN='$domain'" $conf > vesta/web.conf
# Apache config # Apache config
if [ "$WEB_SYSTEM" = 'apache' ]; then if [ "$WEB_SYSTEM" = 'apache' ]; then
@ -189,16 +185,17 @@ then
# SSL Certificates # SSL Certificates
if [ "$SSL" = 'yes' ] ; then if [ "$SSL" = 'yes' ] ; then
cp $HOMEDIR/$user/conf/web/ssl.$domain.* conf/ cp $HOMEDIR/$user/conf/web/ssl.$domain.* conf/
cp $USER_DATA/ssl/$domain.* vesta/
fi fi
tar -rf $tmpdir/web/$domain/$domain.tar conf # Packing data folders
mv $tmpdir/web/$domain/$domain.tar $tmpdir/web/ cd $HOMEDIR/$user/web/$domain
rm -rf $tmpdir/web/$domain domain_direcotries=$(ls |grep -v logs)
tar -cf $tmpdir/web/$domain/domain_data.tar $domain_direcotries
if [ ! -z "$BACKUP_GZIP" ]; then if [ ! -z "$BACKUP_GZIP" ]; then
gzip -$BACKUP_GZIP $tmpdir/web/$domain.tar gzip -$BACKUP_GZIP $tmpdir/web/$domain/domain_data.tar
fi fi
done done
echo echo
fi fi
@ -221,23 +218,70 @@ then
for domain in $dns_list; do for domain in $dns_list; do
echo -e "$(date "+%F %T") $domain" echo -e "$(date "+%F %T") $domain"
# Building directory tree # Building directory tree
mkdir $tmpdir/dns/$domain mkdir -p $tmpdir/dns/$domain/conf
mkdir -p $tmpdir/dns/$domain/vesta
# Creating dns_domains config # Creating dns_domains config
cd $tmpdir/dns/$domain/ cd $tmpdir/dns/$domain/
conf="$USER_DATA/dns.conf" conf="$USER_DATA/dns.conf"
grep "DOMAIN='$domain'" $conf > dns.conf grep "DOMAIN='$domain'" $conf > vesta/dns.conf
# Backingup dns recods # Backingup dns recods
cp $USER_DATA/dns/$domain.conf $domain.conf cp $USER_DATA/dns/$domain.conf vesta/$domain.conf
cp $HOMEDIR/$user/conf/dns/$domain.db $domain.db cp $HOMEDIR/$user/conf/dns/$domain.db conf/$domain.db
done done
echo echo
fi fi
# Mail domains # Mail domains
# TBD if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ] && [ "$MAIL" != '*' ]
then
echo "-- MAIL --"
mkdir $tmpdir/mail/
# Parsing unsuspeneded domains
conf="$USER_DATA/mail.conf"
for domain in $(search_objects 'mail' 'SUSPENDED' "*" 'DOMAIN'); do
check_exl=$(echo "$MAIL"|grep -w $domain)
if [ -z "$check_exl" ]; then
mail_list="$mail_list $domain"
fi
done
mail_list=$(echo "$mail_list" | sed -e "s/ */\ /g" -e "s/^ //")
for domain in $mail_list; do
echo -e "$(date "+%F %T") $domain"
#mkdir -p $tmpdir/mail/$domain/accounts
mkdir -p $tmpdir/mail/$domain/conf
mkdir -p $tmpdir/mail/$domain/vesta
# Creating exim config
cd $tmpdir/mail/$domain/
cp $HOMEDIR/$user/conf/mail/$domain/* conf/
# Creating vesta config
conf="$USER_DATA/mail.conf"
grep "DOMAIN='$domain'" $conf > vesta/mail.conf
cp $USER_DATA/mail/$domain.* vesta/
if [ ! -z "$(ls $USER_DATA/mail/|grep *@$domain)" ]; then
cp $USER_DATA/mail/*@$domain.* vesta/
fi
# Packing mailboxes
cd $HOMEDIR/$user/mail/$domain
accounts=$(ls)
if [ ! -z "$accounts" ]; then
tar -cf $tmpdir/mail/$domain/accounts.tar $accounts
fi
if [ ! -z "$BACKUP_GZIP" ] && [ ! -z $accounts ]; then
gzip -$BACKUP_GZIP $tmpdir/mail/$domain/accounts.tar
fi
done
echo
fi
# DatbaBases # DatbaBases
if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ] && [ "$DB" != '*' ]; then if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ] && [ "$DB" != '*' ]; then
@ -254,9 +298,16 @@ if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ] && [ "$DB" != '*' ]; then
db_list=$(echo "$db_list" | sed -e "s/ */\ /g" -e "s/^ //") db_list=$(echo "$db_list" | sed -e "s/ */\ /g" -e "s/^ //")
for database in $db_list; do for database in $db_list; do
mkdir -p $tmpdir/db/$database/conf
mkdir -p $tmpdir/db/$database/vesta
cd $tmpdir/db/$database/
conf="$USER_DATA/db.conf"
grep "DB='$database'" $conf > vesta/db.conf
get_database_values get_database_values
dump="$tmpdir/db/$database.$TYPE.sql" dump="$tmpdir/db/$database/$database.$TYPE.sql"
grants="$tmpdir/db/$database.$TYPE.$DBUSER" grants="$tmpdir/db/$database/conf/$database.$TYPE.$DBUSER"
echo -e "$(date "+%F %T") $database $TYPE" echo -e "$(date "+%F %T") $database $TYPE"
case $TYPE in case $TYPE in
mysql) dump_mysql_database ;; mysql) dump_mysql_database ;;

View file

@ -35,9 +35,9 @@ json_list_ips() {
else else
if [ $i -lt $fileds_count ]; then if [ $i -lt $fileds_count ]; then
(( ++i)) (( ++i))
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\"," echo -e "\t\t\"${field//$/}\": \"$value\","
else else
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\"" echo -e "\t\t\"${field//$/}\": \"$value\""
data=1 data=1
fi fi
fi fi
@ -75,7 +75,7 @@ shell_list_ips() {
# Defining fileds to select # Defining fileds to select
conf=$VESTA/data/ips/* conf=$VESTA/data/ips/*
fields="\$IP \$OWNER \$STATUS \$NAME \$U_SYS_USERS \$U_WEB_DOMAINS" fields="\$IP \$OWNER \$STATUS \$NAME \$U_SYS_USERS \$U_WEB_DOMAINS"
fields="$fields \$INTERFACE \$NETMASK \$DATE" fields="$fields \$INTERFACE \$NETMASK \$TIME \$DATE"
# Listing ip addresses # Listing ip addresses
case $format in case $format in

View file

@ -191,6 +191,7 @@ create_vesta_ip() {
ip_data="$ip_data\nU_WEB_DOMAINS='0'" ip_data="$ip_data\nU_WEB_DOMAINS='0'"
ip_data="$ip_data\nINTERFACE='$interface'" ip_data="$ip_data\nINTERFACE='$interface'"
ip_data="$ip_data\nNETMASK='$mask'" ip_data="$ip_data\nNETMASK='$mask'"
ip_data="$ip_data\nTIME='$TIME'"
ip_data="$ip_data\nDATE='$DATE'" ip_data="$ip_data\nDATE='$DATE'"
echo -e "$ip_data" >$VESTA/data/ips/$ip echo -e "$ip_data" >$VESTA/data/ips/$ip
chmod 660 $VESTA/data/ips/$ip chmod 660 $VESTA/data/ips/$ip