From 6fbfb3d28b95f393c58f4172d0d6ee3ed87cea03 Mon Sep 17 00:00:00 2001 From: Serghey Rodin Date: Wed, 20 Mar 2013 21:49:47 +0200 Subject: [PATCH] improving backup function --- bin/v-backup-user | 58 +++++++++++++++++++++++++++++++++++------------ 1 file changed, 43 insertions(+), 15 deletions(-) diff --git a/bin/v-backup-user b/bin/v-backup-user index d23e9545..41c393c9 100755 --- a/bin/v-backup-user +++ b/bin/v-backup-user @@ -36,6 +36,12 @@ is_backup_enabled # Action # #----------------------------------------------------------# +# Set backup directory if undefined +if [ -z "$BACKUP" ]; then + BACKUP=/home/backup/ +fi +mkdir -p $BACKUP + # Get current time start_time=$(date '+%s') @@ -471,22 +477,34 @@ local_backup(){ # Defining ftp command function ftpc() { - ftp -n $HOST $PORT < /dev/null 2>&1 + ftmpdir=$(mktemp -u -p "$BPATH") + ftp_result=$(ftpc "mkdir $ftmpdir" "rm $ftmpdir") + if [ ! -z "$ftp_result" ] ; then + rm -rf $tmpdir + echo "Can't create ftp backup folder" | $mail -s "$subj" $email + echo "Error: cant's create ftp folder" sed -i "/ $user /d" $VESTA/data/queue/backup.pipe log_event "$E_FTP" "$EVENT" exit $E_FTP fi # Checking retention - backup_list=$(ftpc "ls" |awk '{print $9}' |grep "^$user\.") + backup_list=$(ftpc "cd $BPATH" "ls" |awk '{print $9}' |grep "^$user\.") backups_count=$(echo "$backup_list" | wc -l) if [ "$backups_count" -ge "$BACKUPS" ]; then backups_rm_number=$((backups_count - BACKUPS + 1)) @@ -522,19 +550,19 @@ ftp_backup(){ deprecated="$deprecated $backup" echo -e "$(date "+%F %T") Deleted old ftp backup: $backup_date" msg="$msg\n$(date "+%F %T") Deleted old ftp backup: $backup_date" - ftpc "delete $backup" + ftpc "cd $BPATH" "delete $backup" done fi # Uploading backup archive if [ "$localbackup" = 'yes' ]; then cd $BACKUP - ftpc "put $user.$DATE.tar" + ftpc "cd $BPATH" "put $user.$DATE.tar" else cd $tmpdir tar -cf $BACKUP/$user.$DATE.tar . cd $BACKUP/ - ftpc "put $user.$DATE.tar" + ftpc "cd $BPATH" "put $user.$DATE.tar" rm -f $user.$DATE.tar fi }