Skip to content

Instantly share code, notes, and snippets.

@fukata
Created July 27, 2015 15:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fukata/8682149dcb9a37dde24f to your computer and use it in GitHub Desktop.
Save fukata/8682149dcb9a37dde24f to your computer and use it in GitHub Desktop.
#!/bin/bash -x
DT=$(date +"%Y%m%d")
BACKUP_TMP_DIR=/tmp/backups-${DT}
BACKUP_DEST_PREFIX=services/blog.pg-applications.com/${DT}
BACKUP_BUCKET="BUCKET NAME"
BACKUP_NUM=10
DB_NAME="WP DB NAME"
mkdir -p $BACKUP_TMP_DIR
cd /var/www
tar cf - blog.pg-applications.com |gzip > $BACKUP_TMP_DIR/blog.pg-applications.com.tar.gz
mysqldump -u root $DB_NAME > $BACKUP_TMP_DIR/$DB_NAME.sql
cd $BACKUP_TMP_DIR && gzip $DB_NAME.sql
# upload
aws s3api put-object --bucket $BACKUP_BUCKET --body $BACKUP_TMP_DIR/blog.pg-applications.com.tar.gz --key $BACKUP_DEST_PREFIX/www/blog.pg-applications.com.tar.gz --content-type application/x-tar
aws s3api put-object --bucket $BACKUP_BUCKET --body $BACKUP_TMP_DIR/$DB_NAME.sql.gz --key $BACKUP_DEST_PREFIX/db/$DB_NAME.sql.gz --content-type application/x-tar
# remove old backups
aws s3 ls s3://$BACKUP_BUCKET/services/blog.pg-applications.com/ |sort -u > $BACKUP_TMP_DIR/backups
if [ $(cat $BACKUP_TMP_DIR/backups |wc -l) -le $BACKUP_NUM ]; then
for d in $(head -n $(($(cat $BACKUP_TMP_DIR/backups |wc -l) - $BACKUP_NUM)) $BACKUP_TMP_DIR/backups |egrep -o '[0-9]+')
do
aws s3 rm s3://$BACKUP_BUCKET/services/blog.pg-applications.com/$d --recursive
done
fi
rm -fr /tmp/backups-${DT}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment