ob1
ob1

Reputation: 1434

Best way to automatically move backups of web server to an AWS sever

I have a web server that produces .tar.zg backup files that I want to automatically transfer to an AWS server.

To accomplish this I have tried to write a bash script on the AWS server that will automatically check for a new backup at the web server and make a copy of the backup if it is more recent (preserving timestamps).

Is there an easier or more robust way to go about this? Am I correct in my FTP script syntax?

# Credentials to access other machine
HOST=xxxxxx 
USER=xxxxx
PASSWD=xxxxxxx

# path to the remoteBackups
remoteBackups=/home/ubuntu/testBackups

# Loops indefinitly 
#while [[ true  ]]
#do

# FTP to remote host and get the name most recent backup 
ftp -inv $HOST<<-EOT
user $USER $PASSWD
#Store name of most recent backup to FILE
# does this work or will it just save it to a variable FILE on the 
remote machine 
FILE=`ls -t ~/Desktop/backups/*.tar.gz | head -1`
bye
EOT

# For testing
echo $FILE

# Copy (preserving modification dates) file to the local remote 
backups folder on aws server
#scp -p -i  <.pem> $FILE $remoteBackups

# Get the most recent back up from both directories
latestLocal=`ls -t ~/intranetBackups/*.tar.gz | head -1`
latestRemote=`ls -t $remoteBackups/*.tar.gz | head -1`

# For testing
echo $latestLocal 
echo $latestRemote

# If the backup from the remote is newer then save to backups and 
sleep for 15 days
if [[ $latestLocal -ot $latestRemote ]]
then
    echo Transferring backup from $latestRemote to $latestLocal
    sleep 15d
else
    echo No new backup file found
    sleep 1d
fi

# If there are more than 20 backups delete the oldest
if [[ `ls -1 ~/intranetBackups | wc -l` -ge 20 ]]
then
    rm `ls -t ~/intranetBackuos | tail -1`
    echo removed the oldest backup
else
    echo no file to be removed
fi
#done

Upvotes: 0

Views: 64

Answers (0)

Related Questions