Backup your server to a Google Cloud Storage Bucket

Hey Everyone,
Hope this is helpful to someone. My Plesk server runs on Google Compute Engine, and backups to a Google Cloud Storage Bucket via this script:

#!/bin/bash
export BOTO_CONFIG="/path/to/.boto"

# Create the backups appending YYMMDD to the end of the file name.
mysqldump databasename -u username -ppassword > database_$(date +%y%m%d).sql
tar -czf httpdocs_$(date +%y%m%d).tar.gz /var/www/vhosts/example.com/httpdocs/

# Compress the database backup.
gzip database_$(date +%y%m%d).sql

# Upload the backups to your bucket, and pipe output to null to prevent cron from emailing you several pages of output.
gsutil cp -L databasereport.txt database_$(date +%y%m%d).sql.gz gs://bucketname 2>/dev/null
gsutil cp -L httpdocsreport.txt httpdocs_$(date +%y%m%d).tar.gz gs://bucketname 2>/dev/null

# Remove the backups from the server.
rm httpdocs_$(date +%y%m%d).tar.gz
rm database_$(date +%y%m%d).sql.gz

# The output reports are .csv, so I would cut them to get the file name and status.
# Output the status of the upload reports for Cron to email (if you want).
cut --delimiter=, -f1,9 databasereport.txt
cut --delimiter=, -f1,9 httpdocsreport.txt

# Remove the upload reports.
rm databasereport.txt
rm httpdocsreport.txt

Leave a Reply