Add cron cartridge
In order to run periodic tasks, be sure to add the cron cartridge to your app:
rhc cartridge add cron-1.4 -a <app_name>
Note: you currently can’t add the cron cartridge to scaled apps
Download and copy s3cmd to your OpenShift data folder
Download s3cmd from http://s3tools.org/s3cmd, copy it to OpenShift and unpack it:
scp s3cmd-1.5.0-alpha3.tar.gz openshiftusername@address:app-root/data
rhc ssh <app_name>
cd app-root/data
tar xzvf s3cmd-1.5.0-alpha3.tar.gz
rm s3cmd-1.5.0-alpha3.tar.gz
mv s3cmd-1.5.0-alpha3 s3cmd
cd s3cmd
Now run the following command and put in your Amazon S3 secret keys:
s3cmd --configure -c .s3cfg
Set up cron script
Add the following code to your 9.openshift/cron/daily folder (or hourly if you want more frequent backups):
#!/bin/bash
# Backs up the OpenShift PostgreSQL database for this application
# by Skye Book <skye.book@gmail.com>
NOW="$(date +"%Y-%m-%d")"
FILENAME="$OPENSHIFT_DATA_DIR/db_backups/$OPENSHIFT_APP_NAME.$NOW.backup.sql.gz"
/opt/rh/postgresql92/root/usr/bin/pg_dump -h $OPENSHIFT_POSTGRESQL_DB_HOST -p $OPENSHIFT_POSTGRESQL_DB_PORT -F c $OPENSHIFT_APP_NAME > $FILENAME
cd $OPENSHIFT_DATA_DIR/s3cmd
s3cmd -c .s3cfg put $FILENAME s3://mediathreadbackups