LinuxServer

Backup

Automating backups with Amazon S3 on Linux

Reference: http://shapeshed.com/journal/automating_backups_with_amazon_s3_on_linux/

  • Install Ruby

yum install ruby

  • Install s3sync
wget http://s3.amazonaws.com/ServEdge_pub/s3sync/s3sync.tar.gz
tar xzf s3sync.tar.gz
rm s3sync.tar.gz
cd s3sync
mkdir /etc/s3conf
cp s3config.yml.example /etc/s3conf/s3config.yml
  • Edit the file with the following content

vi /etc/s3conf/s3config.yml

aws_access_key_id: ------Your Access Key here ------
aws_secret_access_key: ---- Your Secret Access Key here ------
ssl_cert_dir: /home/your-user/s3sync/certs
  • Make SSL certs
mkdir certs
cd certs
wget http://mirbsd.mirsolutions.de/cvs.cgi/~checkout~/src/etc/ssl.certs.shar
sh ssl.certs.shar
  • Make a folder to store backup file
cd ..
mkdir s3backup
cd /root/s3sync/s3backup

mysqldump --opt -u root -puddiwsdl2011 ovhk_school | gzip -9 > ovhk_school$(date +_%Y%m%d).sql.gz

cd ..
ruby s3sync.rb -r ––ssl s3backup/ s3folder:
cd s3backup
rm -f *
cd ..
  • Make a script for automatic task

vi s3backup.sh

#!/bin/bash
# directory structure:
# ~/s3sync has scripts
# ~/s3sync/s3backup is a folder for temp backup files
NOW=$(date +_%Y%m%d)
cd /root/s3sync/s3backup
mysqldump --opt -u root -ppassword dbname | gzip -9 > dbname$NOW.sql.gz
cd ..
ruby s3sync.rb -r --ssl s3backup/ s3folder:
cd s3backup
rm -f *

sudo chmod +x s3backup.sh sudo ./s3backup.sh

  • Create a crontab job

crontab -e

  • Add the following line
0 3 * * 0 /root/s3sync/s3backup.sh