@@ -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
4046start_time=$( date ' +%s' )
4147
@@ -471,22 +477,34 @@ local_backup(){
471477
472478# Defining ftp command function
473479ftpc () {
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
481488EOF
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