Skip to content

Instantly share code, notes, and snippets.

@anil3a
Created January 21, 2021 01:21
Show Gist options
  • Save anil3a/68eecf99e0fe700cb4f17cd7a3cbfacc to your computer and use it in GitHub Desktop.
Save anil3a/68eecf99e0fe700cb4f17cd7a3cbfacc to your computer and use it in GitHub Desktop.
Linux Bash script to backup file to Amazon AWS S3 bucket with S3cmd command
#!/bin/bash
# Usage
# ./backup_script.sh
# logger used for adding log to syslog
# CONSTANT
###################
ROOT_DIR=/var/www/prajapatianil.com.np/
UPLOAD_FOLDER=$ROOT_DIR/public_html/uploads
MEDIA_FOLDER=$ROOT_DIR/public_html/media
UPLOAD_FILENAME='uploads.tar.gz'
MEDIA_FILENAME='media.tar.gz'
cd $ROOT_DIR
if [ -f "$UPLOAD_FILENAME" ]
then
rm $UPLOAD_FILENAME;
fi
if [ -f "$MEDIA_FILENAME" ]
then
rm $MEDIA_FILENAME;
fi
printf -v DATE '%(%Y-%m-%d)T' -1
# Start
#####################
# 1. UPLOAD backup
logger -s 'Anil Script - Uploads backup started'
tar zcfP $UPLOAD_FILENAME $UPLOAD_FOLDER
s3cmd put $UPLOAD_FILENAME s3://prajapatianil.com.np/uploads/uploads-$DATE.tar.gz
#Remove backup file after upload
if [ -f "$UPLOAD_FILENAME" ]
then
rm $UPLOAD_FILENAME;
fi
logger -s 'Anil Script - Uploads backup completed'
# 2. Media backup
logger -s 'Anil Script - Media backup started'
tar zcfP $MEDIA_FILENAME $MEDIA_FOLDER
s3cmd put $MEDIA_FILENAME s3://prajapatianil.com.np/media/media-$DATE.tar.gz
#Remove backup file after upload
if [ -f "$MEDIA_FILENAME" ]
then
rm $MEDIA_FILENAME;
fi
logger -s 'Anil Script - Media backup completed'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment