How to set up the script (all steps as root):
- Install s3cmd
- Run s3cmd –configure
- Copy the generated .s3cfg file to /etc
- Download the S3 backup script to /etc/cron.daily/
- Edit the script to suit your needs.
I hope someone finds this useful!
Here’s what the script looks like:
## Specify data base schemas to backup and credentials DATABASES="nompdb wp_blog" ## Syntax databasename as per above _USER and _PW ## _USER is mandatory _PW is optional nompdb_USER=root wp_blog_USER=root ## Specify directories to backup (it's clever to use relaive paths) DIRECTORIES="root etc/cron.daily etc/httpd etc/tomcat6 tmp/jenkinsbackup" ## Initialize some variables DATE=$(date +%Y%m%d) DATETIME=$(date +%Y%m%d-%H%m) BACKUP_DIRECTORY=/tmp/backups S3_CMD="/usr/bin/s3cmd --config /etc/s3cfg" ## Specify where the backups should be placed S3_BUCKET_URL=s3://nomp-backup/$DATE/ ## The script cd / mkdir -p $BACKUP_DIRECTORY rm -rf $BACKUP_DIRECTORY/* ## Backup MySQL:s for DB in $DATABASES do BACKUP_FILE=$BACKUP_DIRECTORY/${DATETIME}_${DB}.sql if [ ! -n "${DB}_PW" ] then PASSWORD=$(eval echo \$${DB}_PW) USER=$(eval echo \$${DB}_USER) /usr/bin/mysqldump -v --user $USER --password $PASSWORD -h localhost -r $BACKUP_FILE $DB 2>&1 else /usr/bin/mysqldump -v --user $USER -h localhost -r $BACKUP_FILE $DB 2>&1 fi /bin/gzip $BACKUP_FILE 2>&1 $S3_CMD put ${BACKUP_FILE}.gz $S3_BUCKET_URL 2>&1 done ## Backup of config directories for DIR in $DIRECTORIES do BACKUP_FILE=${DATETIME}_$(echo $DIR | sed 's/\//-/g').tgz /bin/tar zcvf ${BACKUP_FILE} $DIR 2>&1 $S3_CMD put ${BACKUP_FILE} $S3_BUCKET_URL 2>&1 done
0 comments:
Post a Comment