Skip to content

Commit 4aeec46

Browse files
committed
Making SFTP backup able to work with empty folder name
1 parent 92fa085 commit 4aeec46

File tree

2 files changed

+43
-10
lines changed

2 files changed

+43
-10
lines changed

bin/v-add-backup-host

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,9 +141,17 @@ if [ "$type" = 'sftp' ]; then
141141
if [ -z $port ]; then
142142
port=22
143143
fi
144-
if sftpc "mkdir $path" > /dev/null 2>&1 ; then
145-
sftmpdir="$path/vst.bK76A9SUkt"
146-
sftpc "mkdir $sftmpdir" "rmdir $sftmpdir" > /dev/null 2>&1
144+
if [ -z $path ]; then
145+
sftmpdir="vst.bK76A9SUkt"
146+
sftpc "mkdir $sftmpdir" "rmdir $sftmpdir" > /dev/null 2>&1
147+
else
148+
if sftpc "mkdir $path" > /dev/null 2>&1 ; then
149+
sftmpdir="$path/vst.bK76A9SUkt"
150+
sftpc "mkdir $sftmpdir" "rmdir $sftmpdir" > /dev/null 2>&1
151+
else
152+
sftmpdir="$path/vst.bK76A9SUkt"
153+
sftpc "mkdir $sftmpdir" "rmdir $sftmpdir" > /dev/null 2>&1
154+
fi
147155
fi
148156
rc=$?
149157
if [[ "$rc" != 0 ]]; then

bin/v-backup-user

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ done
7070

7171
# Creating temporary directory
7272
tmpdir=$(mktemp -p $BACKUP -d)
73+
7374
if [ "$?" -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))
@@ -623,7 +624,11 @@ ftp_backup() {
623624
cd $tmpdir
624625
tar -cf $BACKUP/$user.$date.tar .
625626
cd $BACKUP/
626-
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
627632
rm -f $user.$date.tar
628633
fi
629634
}
@@ -721,7 +726,11 @@ sftp_backup() {
721726
tee -a $BACKUP/$user.log
722727

723728
# Checking network connection and write permissions
724-
sftmpdir="$BPATH/vst.bK76A9SUkt"
729+
if [ -z $BPATH ]; then
730+
sftmpdir="vst.bK76A9SUkt"
731+
else
732+
sftmpdir="$BPATH/vst.bK76A9SUkt"
733+
fi
725734
sftpc "mkdir $BPATH" > /dev/null 2>&1
726735
sftpc "mkdir $sftmpdir" "rmdir $sftmpdir" > /dev/null 2>&1
727736
rc=$?
@@ -738,28 +747,44 @@ sftp_backup() {
738747
fi
739748

740749
# Checking retention
741-
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
742755
backups_count=$(echo "$backup_list" |wc -l)
743756
if [ "$backups_count" -ge "$BACKUPS" ]; then
744757
backups_rm_number=$((backups_count - BACKUPS + 1))
745758
for backup in $(echo "$backup_list" |head -n $backups_rm_number); do
746759
backup_date=$(echo $backup |sed -e "s/$user.//" -e "s/.tar.*$//")
747760
echo -e "$(date "+%F %T") Rotated sftp backup: $backup_date" |\
748761
tee -a $BACKUP/$user.log
749-
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
750767
done
751768
fi
752769

753770
# Uploading backup archive
754771
echo "$(date "+%F %T") Uploading $user.$date.tar"|tee -a $BACKUP/$user.log
755772
if [ "$localbackup" = 'yes' ]; then
756773
cd $BACKUP
757-
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
758779
else
759780
cd $tmpdir
760781
tar -cf $BACKUP/$user.$date.tar .
761782
cd $BACKUP/
762-
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
763788
rm -f $user.$date.tar
764789
fi
765790
}

0 commit comments

Comments
 (0)