7070
7171# Creating temporary directory
7272tmpdir=$( mktemp -p /tmp -d)
73+
7374if [ " $? " -ne 0 ]; then
7475 echo " Can't create tmp dir $tmpdir " | $SENDMAIL -s " $subj " $email $notify
7576 check_result $E_NOTEXIST " can't create tmp dir"
@@ -478,7 +479,7 @@ local_backup(){
478479 rm -f $BACKUP /$user .$date .tar
479480
480481 # Checking retention
481- backup_list=$( ls -lrt $BACKUP / | awk ' {print $9}' | grep " ^$user \." )
482+ backup_list=$( ls -lrt $BACKUP / | awk ' {print $9}' | grep " ^$user \." | grep " .tar " )
482483 backups_count=$( echo " $backup_list " | wc -l)
483484 if [ " $BACKUPS " -le " $backups_count " ]; then
484485 backups_rm_number=$(( backups_count - BACKUPS))
@@ -557,7 +558,6 @@ ftp_backup() {
557558 check_result " $E_PARSING " " $error "
558559 fi
559560
560-
561561 # Debug info
562562 echo -e " $( date " +%F %T" ) Remote: ftp://$HOST$BPATH /$user .$date .tar"
563563
@@ -574,8 +574,12 @@ ftp_backup() {
574574 fi
575575
576576 # Check ftp permissions
577- ftpc " mkdir $BPATH " > /dev/null 2>&1
578- ftmpdir=" $BPATH /vst.bK76A9SUkt"
577+ if [ -z $BPATH ]; then
578+ ftmpdir=" vst.bK76A9SUkt"
579+ else
580+ ftpc " mkdir $BPATH " > /dev/null 2>&1
581+ ftmpdir=" $BPATH /vst.bK76A9SUkt"
582+ fi
579583 ftpc " mkdir $ftmpdir " " rm $ftmpdir "
580584 ftp_result=$( ftpc " mkdir $ftmpdir " " rm $ftmpdir " | grep -v Trying)
581585 if [ ! -z " $ftp_result " ] ; then
@@ -588,27 +592,43 @@ ftp_backup() {
588592 fi
589593
590594 # Checking retention
591- backup_list=$( ftpc " cd $BPATH " " ls" | awk ' {print $9}' | grep " ^$user \." )
595+ if [ -z $BPATH ]; then
596+ backup_list=$( ftpc " ls" | awk ' {print $9}' | grep " ^$user \." )
597+ else
598+ backup_list=$( ftpc " cd $BPATH " " ls" | awk ' {print $9}' | grep " ^$user \." )
599+ fi
592600 backups_count=$( echo " $backup_list " | wc -l)
593601 if [ " $backups_count " -ge " $BACKUPS " ]; then
594602 backups_rm_number=$(( backups_count - BACKUPS + 1 ))
595603 for backup in $( echo " $backup_list " | head -n $backups_rm_number ) ; do
596604 backup_date=$( echo $backup | sed -e " s/$user .//" -e " s/.tar$//" )
597605 echo -e " $( date " +%F %T" ) Rotated ftp backup: $backup_date " | \
598606 tee -a $BACKUP /$user .log
599- ftpc " cd $BPATH " " delete $backup "
607+ if [ -z $BPATH ]; then
608+ ftpc " delete $backup "
609+ else
610+ ftpc " cd $BPATH " " delete $backup "
611+ fi
600612 done
601613 fi
602614
603615 # Uploading backup archive
604616 if [ " $localbackup " = ' yes' ]; then
605617 cd $BACKUP
606- ftpc " cd $BPATH " " put $user .$date .tar"
618+ if [ -z $BPATH ]; then
619+ ftpc " put $user .$date .tar"
620+ else
621+ ftpc " cd $BPATH " " put $user .$date .tar"
622+ fi
607623 else
608624 cd $tmpdir
609625 tar -cf $BACKUP /$user .$date .tar .
610626 cd $BACKUP /
611- ftpc " cd $BPATH " " put $user .$date .tar"
627+ if [ -z $BPATH ]; then
628+ ftpc " put $user .$date .tar"
629+ else
630+ ftpc " cd $BPATH " " put $user .$date .tar"
631+ fi
612632 rm -f $user .$date .tar
613633 fi
614634}
@@ -706,7 +726,11 @@ sftp_backup() {
706726 tee -a $BACKUP /$user .log
707727
708728 # Checking network connection and write permissions
709- sftmpdir=" $BPATH /vst.bK76A9SUkt"
729+ if [ -z $BPATH ]; then
730+ sftmpdir=" vst.bK76A9SUkt"
731+ else
732+ sftmpdir=" $BPATH /vst.bK76A9SUkt"
733+ fi
710734 sftpc " mkdir $BPATH " > /dev/null 2>&1
711735 sftpc " mkdir $sftmpdir " " rmdir $sftmpdir " > /dev/null 2>&1
712736 rc=$?
@@ -723,28 +747,44 @@ sftp_backup() {
723747 fi
724748
725749 # Checking retention
726- backup_list=$( sftpc " cd $BPATH " " ls -l" | awk ' {print $9}' | grep " ^$user \." )
750+ if [ -z $BPATH ]; then
751+ backup_list=$( sftpc " ls -l" | awk ' {print $9}' | grep " ^$user \." )
752+ else
753+ backup_list=$( sftpc " cd $BPATH " " ls -l" | awk ' {print $9}' | grep " ^$user \." )
754+ fi
727755 backups_count=$( echo " $backup_list " | wc -l)
728756 if [ " $backups_count " -ge " $BACKUPS " ]; then
729757 backups_rm_number=$(( backups_count - BACKUPS + 1 ))
730758 for backup in $( echo " $backup_list " | head -n $backups_rm_number ) ; do
731759 backup_date=$( echo $backup | sed -e " s/$user .//" -e " s/.tar.*$//" )
732760 echo -e " $( date " +%F %T" ) Rotated sftp backup: $backup_date " | \
733761 tee -a $BACKUP /$user .log
734- sftpc " cd $BPATH " " rm $backup " > /dev/null 2>&1
762+ if [ -z $BPATH ]; then
763+ sftpc " rm $backup " > /dev/null 2>&1
764+ else
765+ sftpc " cd $BPATH " " rm $backup " > /dev/null 2>&1
766+ fi
735767 done
736768 fi
737769
738770 # Uploading backup archive
739771 echo " $( date " +%F %T" ) Uploading $user .$date .tar" | tee -a $BACKUP /$user .log
740772 if [ " $localbackup " = ' yes' ]; then
741773 cd $BACKUP
742- sftpc " cd $BPATH " " put $user .$date .tar" > /dev/null 2>&1
774+ if [ -z $BPATH ]; then
775+ sftpc " put $user .$date .tar" " chmod 0600 $user .$date .tar" > /dev/null 2>&1
776+ else
777+ sftpc " cd $BPATH " " put $user .$date .tar" " chmod 0600 $user .$date .tar" > /dev/null 2>&1
778+ fi
743779 else
744780 cd $tmpdir
745781 tar -cf $BACKUP /$user .$date .tar .
746782 cd $BACKUP /
747- sftpc " cd $BPATH " " put $user .$date .tar" > /dev/null 2>&1
783+ if [ -z $BPATH ]; then
784+ sftpc " put $user .$date .tar" " chmod 0600 $user .$date .tar" > /dev/null 2>&1
785+ else
786+ sftpc " cd $BPATH " " put $user .$date .tar" " chmod 0600 $user .$date .tar" > /dev/null 2>&1
787+ fi
748788 rm -f $user .$date .tar
749789 fi
750790}
@@ -853,6 +893,7 @@ update_user_value "$user" '$U_BACKUPS' "$U_BACKUPS"
853893
854894# Send notification
855895if [ -e " $BACKUP /$user .log" ]; then
896+ cd $BACKUP
856897 subj=" $user → backup has been completed"
857898 email=$( get_user_value ' $CONTACT' )
858899 cat $BACKUP /$user .log | $SENDMAIL -s " $subj " $email $notify
0 commit comments