Making SFTP backup able to work with empty folder name

This commit is contained in:
dpeca 2017-04-28 20:37:20 +02:00
commit 4aeec46841
2 changed files with 43 additions and 10 deletions

View file

@ -141,9 +141,17 @@ if [ "$type" = 'sftp' ]; then
if [ -z $port ]; then if [ -z $port ]; then
port=22 port=22
fi fi
if sftpc "mkdir $path" > /dev/null 2>&1 ; then if [ -z $path ]; then
sftmpdir="$path/vst.bK76A9SUkt" sftmpdir="vst.bK76A9SUkt"
sftpc "mkdir $sftmpdir" "rmdir $sftmpdir" > /dev/null 2>&1 sftpc "mkdir $sftmpdir" "rmdir $sftmpdir" > /dev/null 2>&1
else
if sftpc "mkdir $path" > /dev/null 2>&1 ; then
sftmpdir="$path/vst.bK76A9SUkt"
sftpc "mkdir $sftmpdir" "rmdir $sftmpdir" > /dev/null 2>&1
else
sftmpdir="$path/vst.bK76A9SUkt"
sftpc "mkdir $sftmpdir" "rmdir $sftmpdir" > /dev/null 2>&1
fi
fi fi
rc=$? rc=$?
if [[ "$rc" != 0 ]]; then if [[ "$rc" != 0 ]]; then

View file

@ -70,6 +70,7 @@ done
# Creating temporary directory # Creating temporary directory
tmpdir=$(mktemp -p $BACKUP -d) tmpdir=$(mktemp -p $BACKUP -d)
if [ "$?" -ne 0 ]; then if [ "$?" -ne 0 ]; then
echo "Can't create tmp dir $tmpdir" |$SENDMAIL -s "$subj" $email $notify echo "Can't create tmp dir $tmpdir" |$SENDMAIL -s "$subj" $email $notify
check_result $E_NOTEXIST "can't create tmp dir" check_result $E_NOTEXIST "can't create tmp dir"
@ -478,7 +479,7 @@ local_backup(){
rm -f $BACKUP/$user.$date.tar rm -f $BACKUP/$user.$date.tar
# Checking retention # Checking retention
backup_list=$(ls -lrt $BACKUP/ |awk '{print $9}' |grep "^$user\.") backup_list=$(ls -lrt $BACKUP/ |awk '{print $9}' |grep "^$user\." | grep ".tar")
backups_count=$(echo "$backup_list" |wc -l) backups_count=$(echo "$backup_list" |wc -l)
if [ "$BACKUPS" -le "$backups_count" ]; then if [ "$BACKUPS" -le "$backups_count" ]; then
backups_rm_number=$((backups_count - BACKUPS)) backups_rm_number=$((backups_count - BACKUPS))
@ -623,7 +624,11 @@ ftp_backup() {
cd $tmpdir cd $tmpdir
tar -cf $BACKUP/$user.$date.tar . tar -cf $BACKUP/$user.$date.tar .
cd $BACKUP/ cd $BACKUP/
ftpc "cd $BPATH" "put $user.$date.tar" if [ -z $BPATH ]; then
ftpc "put $user.$date.tar"
else
ftpc "cd $BPATH" "put $user.$date.tar"
fi
rm -f $user.$date.tar rm -f $user.$date.tar
fi fi
} }
@ -721,7 +726,11 @@ sftp_backup() {
tee -a $BACKUP/$user.log tee -a $BACKUP/$user.log
# Checking network connection and write permissions # Checking network connection and write permissions
sftmpdir="$BPATH/vst.bK76A9SUkt" if [ -z $BPATH ]; then
sftmpdir="vst.bK76A9SUkt"
else
sftmpdir="$BPATH/vst.bK76A9SUkt"
fi
sftpc "mkdir $BPATH" > /dev/null 2>&1 sftpc "mkdir $BPATH" > /dev/null 2>&1
sftpc "mkdir $sftmpdir" "rmdir $sftmpdir" > /dev/null 2>&1 sftpc "mkdir $sftmpdir" "rmdir $sftmpdir" > /dev/null 2>&1
rc=$? rc=$?
@ -738,7 +747,11 @@ sftp_backup() {
fi fi
# Checking retention # Checking retention
backup_list=$(sftpc "cd $BPATH" "ls -l" |awk '{print $9}'|grep "^$user\.") if [ -z $BPATH ]; then
backup_list=$(sftpc "ls -l" |awk '{print $9}'|grep "^$user\.")
else
backup_list=$(sftpc "cd $BPATH" "ls -l" |awk '{print $9}'|grep "^$user\.")
fi
backups_count=$(echo "$backup_list" |wc -l) backups_count=$(echo "$backup_list" |wc -l)
if [ "$backups_count" -ge "$BACKUPS" ]; then if [ "$backups_count" -ge "$BACKUPS" ]; then
backups_rm_number=$((backups_count - BACKUPS + 1)) backups_rm_number=$((backups_count - BACKUPS + 1))
@ -746,7 +759,11 @@ sftp_backup() {
backup_date=$(echo $backup |sed -e "s/$user.//" -e "s/.tar.*$//") backup_date=$(echo $backup |sed -e "s/$user.//" -e "s/.tar.*$//")
echo -e "$(date "+%F %T") Rotated sftp backup: $backup_date" |\ echo -e "$(date "+%F %T") Rotated sftp backup: $backup_date" |\
tee -a $BACKUP/$user.log tee -a $BACKUP/$user.log
sftpc "cd $BPATH" "rm $backup" > /dev/null 2>&1 if [ -z $BPATH ]; then
sftpc "rm $backup" > /dev/null 2>&1
else
sftpc "cd $BPATH" "rm $backup" > /dev/null 2>&1
fi
done done
fi fi
@ -754,12 +771,20 @@ sftp_backup() {
echo "$(date "+%F %T") Uploading $user.$date.tar"|tee -a $BACKUP/$user.log echo "$(date "+%F %T") Uploading $user.$date.tar"|tee -a $BACKUP/$user.log
if [ "$localbackup" = 'yes' ]; then if [ "$localbackup" = 'yes' ]; then
cd $BACKUP cd $BACKUP
sftpc "cd $BPATH" "put $user.$date.tar" > /dev/null 2>&1 if [ -z $BPATH ]; then
sftpc "put $user.$date.tar" "chmod 0600 $user.$date.tar" > /dev/null 2>&1
else
sftpc "cd $BPATH" "put $user.$date.tar" "chmod 0600 $user.$date.tar" > /dev/null 2>&1
fi
else else
cd $tmpdir cd $tmpdir
tar -cf $BACKUP/$user.$date.tar . tar -cf $BACKUP/$user.$date.tar .
cd $BACKUP/ cd $BACKUP/
sftpc "cd $BPATH" "put $user.$date.tar" > /dev/null 2>&1 if [ -z $BPATH ]; then
sftpc "put $user.$date.tar" "chmod 0600 $user.$date.tar" > /dev/null 2>&1
else
sftpc "cd $BPATH" "put $user.$date.tar" "chmod 0600 $user.$date.tar" > /dev/null 2>&1
fi
rm -f $user.$date.tar rm -f $user.$date.tar
fi fi
} }