backup system 92% is done

This commit is contained in:
Serghey Rodin 2011-08-20 17:24:52 +03:00
commit 5e09a913fd
4 changed files with 198 additions and 19 deletions

View file

@ -27,12 +27,14 @@ check_args '1' "$#" 'user [output]'
# Checking argument format
format_validation 'user'
# Checking web system is enabled
# Checking backup system is enabled
is_system_enabled 'backup'
# Checking user
is_user_valid
# Checking user backups
is_backup_enabled
#----------------------------------------------------------#
@ -56,8 +58,31 @@ fi
echo "1.0" >$tmpdir/backup_version
echo "$VERSION" > $tmpdir/vesta_version
# Checking excludes
OLD_IFS="$IFS"
IFS=$'\n'
if [ -e "$V_USERS/$user/backup.excludes" ]; then
if [ -z "$output" ]; then
echo "-- Excludes --"
fi
for exclude in $(cat $V_USERS/$user/backup.excludes); do
if [ -z "$output" ]; then
echo -e "\t $exclude"
fi
# Indirect variable references (a bit of black magic)
eval ${exclude%%=*}=${exclude#*=}
done
if [ -z "$output" ]; then
echo
fi
fi
IFS="$OLD_IFS"
# WEB domains
if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then
if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ] && [ "$WEB" != '*' ]
then
if [ -z "$output" ]; then
echo "-- WEB --"
fi
@ -68,8 +93,17 @@ if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then
field='$DOMAIN'
search_string='DOMAIN='
domains=$(dom_clear_search)
domain_list=''
# Cleaning excludes
for domain in $domains; do
check_exl=$(echo "$WEB"|grep -w $domain)
if [ -z "$check_exl" ]; then
web_list="$web_list $domain"
fi
done
for domain in $web_list; do
if [ -z "$output" ]; then
echo -e "\t$(date +%H:%m:%S) $domain"
fi
@ -139,7 +173,10 @@ if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then
tar -rf $tmpdir/web/$domain/$domain.tar conf cert
mv $tmpdir/web/$domain/$domain.tar $tmpdir/web/
rm -rf $tmpdir/web/$domain
gzip -$V_BACKUP_GZIP $tmpdir/web/$domain.tar
if [ ! -z "$V_BACKUP_GZIP" ]; then
gzip -$V_BACKUP_GZIP $tmpdir/web/$domain.tar
fi
done
if [ -z "$output" ]; then
@ -149,7 +186,8 @@ if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ]; then
fi
# DNS domains
if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then
if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ] && [ "$DNS" != '*' ]
then
if [ -z "$output" ]; then
echo "-- DNS --"
fi
@ -161,7 +199,15 @@ if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ]; then
search_string='DOMAIN='
domains=$(dom_clear_search)
# Cleaning excludes
for domain in $domains; do
check_exl=$(echo "$DNS"|grep -w $domain)
if [ -z "$check_exl" ]; then
dns_list="$dns_list $domain"
fi
done
for domain in $dns_list; do
if [ -z "$output" ]; then
echo -e "\t$(date +%H:%m:%S) $domain"
fi
@ -189,7 +235,7 @@ fi
# TBD
# DatbaBases
if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then
if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ] && [ "$DB" != '*' ]; then
if [ -z "$output" ]; then
echo "-- DB --"
fi
@ -201,12 +247,36 @@ if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then
search_string='DB='
dbs=$(dom_clear_search)
for db in $dbs; do
if [ -z "$output" ]; then
echo -e "\t$(date +%H:%m:%S) $db"
# Cleaning excludes
for database in $dbs; do
check_exl=$(echo "$DB"|grep -w $database)
if [ -z "$check_exl" ]; then
db_list="$db_list $database"
fi
done
for database in $db_list; do
type=$(get_db_value '$TYPE')
host=$(get_db_value '$HOST')
db_user=$(get_db_value '$USER')
dump="$tmpdir/db/$database.$type.sql"
grants="$tmpdir/db/$database.$type.$db_user"
if [ -z "$output" ]; then
echo -e "\t$(date +%H:%m:%S) $database $type"
fi
case $type in
mysql) dump_db_mysql ;;
pgsql) dump_db_pgsql ;;
esac
if [ ! -z "$V_BACKUP_GZIP" ]; then
gzip -$V_BACKUP_GZIP $dump
fi
done
if [ -z "$output" ]; then
echo
fi
@ -214,7 +284,8 @@ if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ]; then
fi
# Cron jobs
if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON_SYSTEM" != 'no' ]; then
if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON_SYSTEM" != 'no' ] && [ "$CRON" != '*' ]
then
if [ -z "$output" ]; then
echo "-- CRON --"
fi
@ -238,7 +309,7 @@ if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON_SYSTEM" != 'no' ]; then
fi
# SSL CERTIFICATES
if [ ! -z "$WEB_SSL" ] && [ "$WEB_SSL" != 'no' ]; then
if [ ! -z "$WEB_SSL" ] && [ "$WEB_SSL" != 'no' ] && [ "$SSL" != '*' ]; then
if [ -z "$output" ]; then
echo "-- CERTIFICATES --"
fi
@ -293,6 +364,33 @@ if [ -e "$V_USERS/$user/history.log" ]; then
cp -r $V_USERS/$user/history.log $tmpdir/vesta/
fi
if [ -e "$V_USERS/$user/backup.excludes" ]; then
if [ -z "$output" ]; then
echo -e "\t$(date +%H:%m:%S) backup.excludes"
fi
cp -r $V_USERS/$user/backup.excludes $tmpdir/vesta/
fi
if [ -z "$output" ]; then
echo
fi
# Move tmp backup to local storage
if [ "$BACKUP_SYSTEM" = 'local' ]; then
if [ -z "$output" ]; then
echo "ARCHIVE $V_BACKUP/$user.$V_DATE.tar"
fi
# Checking retention
check_ret=$()
cd $tmpdir
tar -cf $V_BACKUP/$user.$V_DATE.tar .
fi
cd /
rm -rf $tmpdir
if [ -z "$output" ]; then
echo
fi