Skip to content

Commit 6fbfb3d

Browse files
committed
improving backup function
1 parent b0481bd commit 6fbfb3d

File tree

1 file changed

+43
-15
lines changed

1 file changed

+43
-15
lines changed

bin/v-backup-user

Lines changed: 43 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,12 @@ is_backup_enabled
3636
# Action #
3737
#----------------------------------------------------------#
3838

39+
# Set backup directory if undefined
40+
if [ -z "$BACKUP" ]; then
41+
BACKUP=/home/backup/
42+
fi
43+
mkdir -p $BACKUP
44+
3945
# Get current time
4046
start_time=$(date '+%s')
4147

@@ -471,22 +477,34 @@ local_backup(){
471477

472478
# Defining ftp command function
473479
ftpc() {
474-
ftp -n $HOST $PORT <<EOF
480+
ftp -n $HOST $FTP_PORT <<EOF
475481
quote USER $USERNAME
476482
quote PASS $PASSWORD
477483
binary
478-
cd $BPATH
479484
$1
485+
$2
486+
$3
480487
quit
481488
EOF
482489
}
483490

484491
# Defining ftp storage function
485-
ftp_backup(){
492+
ftp_backup() {
486493
# Checking config
494+
if [ ! -e "$VESTA/conf/ftp.backup.conf" ]; then
495+
ftp_conf_error="Can't open $VESTA/conf/ftp.backup.conf"
496+
echo "$ftp_conf_error" | $mail -s "$subj" $email
497+
echo "Error: $VESTA/conf/ftp.backup.conf does not exist"
498+
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
499+
log_event "$E_NOTEXIST" "$EVENT"
500+
exit $E_NOTEXIST
501+
fi
502+
503+
# Parse config
487504
source $VESTA/conf/ftp.backup.conf
488-
if [ -z "$HOST" ] || [ -z "$USERNAME" ] || [ -z "$PASSWORD" ] ||\
489-
[ -z "$BPATH" ]; then
505+
506+
# Checking variables
507+
if [ -z "$HOST" ] || [ -z "$USERNAME" ] || [ -z "$PASSWORD" ]; then
490508
rm -rf $tmpdir
491509
echo "Can't parse ftp backup configuration" | $mail -s "$subj" $email
492510
echo "Error: Parsing error"
@@ -499,21 +517,31 @@ ftp_backup(){
499517
echo -e "$(date "+%F %T") FTP ftp://$HOST$BPATH/$user.$DATE.tar"
500518
msg="$msg\n$(date "+%F %T") FTP ftp://$HOST$BPATH/$user.$DATE.tar"
501519

502-
# Checking ftp permission
503-
ftmpdir=$(mktemp -u -p $BPATH)
504-
command="mkdir $ftmpdir
505-
rm $ftmpdir"
506-
if [ ! -z "$(ftpc "$command")" ] ; then
520+
# Checking ftp connection
521+
if [ ! -z "$(ftpc)" ]; then
507522
rm -rf $tmpdir
508523
echo "Can't login to ftp://$USERNAME@$HOST" | $mail -s "$subj" $email
509-
echo "Error: FTP error"
524+
echo "Error: can't login to ftp"
525+
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
526+
log_event "$E_FTP" "$EVENT"
527+
exit $E_FTP
528+
fi
529+
530+
# Check ftp permissions
531+
ftpc "mkdir $BPATH" > /dev/null 2>&1
532+
ftmpdir=$(mktemp -u -p "$BPATH")
533+
ftp_result=$(ftpc "mkdir $ftmpdir" "rm $ftmpdir")
534+
if [ ! -z "$ftp_result" ] ; then
535+
rm -rf $tmpdir
536+
echo "Can't create ftp backup folder" | $mail -s "$subj" $email
537+
echo "Error: cant's create ftp folder"
510538
sed -i "/ $user /d" $VESTA/data/queue/backup.pipe
511539
log_event "$E_FTP" "$EVENT"
512540
exit $E_FTP
513541
fi
514542

515543
# Checking retention
516-
backup_list=$(ftpc "ls" |awk '{print $9}' |grep "^$user\.")
544+
backup_list=$(ftpc "cd $BPATH" "ls" |awk '{print $9}' |grep "^$user\.")
517545
backups_count=$(echo "$backup_list" | wc -l)
518546
if [ "$backups_count" -ge "$BACKUPS" ]; then
519547
backups_rm_number=$((backups_count - BACKUPS + 1))
@@ -522,19 +550,19 @@ ftp_backup(){
522550
deprecated="$deprecated $backup"
523551
echo -e "$(date "+%F %T") Deleted old ftp backup: $backup_date"
524552
msg="$msg\n$(date "+%F %T") Deleted old ftp backup: $backup_date"
525-
ftpc "delete $backup"
553+
ftpc "cd $BPATH" "delete $backup"
526554
done
527555
fi
528556

529557
# Uploading backup archive
530558
if [ "$localbackup" = 'yes' ]; then
531559
cd $BACKUP
532-
ftpc "put $user.$DATE.tar"
560+
ftpc "cd $BPATH" "put $user.$DATE.tar"
533561
else
534562
cd $tmpdir
535563
tar -cf $BACKUP/$user.$DATE.tar .
536564
cd $BACKUP/
537-
ftpc "put $user.$DATE.tar"
565+
ftpc "cd $BPATH" "put $user.$DATE.tar"
538566
rm -f $user.$DATE.tar
539567
fi
540568
}

0 commit comments

Comments
 (0)