Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
fernandoneto committed Feb 3, 2016
1 parent ed45e15 commit a0e94d6
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 6 deletions.
3 changes: 2 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
FROM alpine:edge
FROM cusspvz/node:0.12.9
MAINTAINER Fernando Neto <fernando.neto@junglecloud.com>

RUN apk add --update py-pip mysql-client bash apk-cron && \
pip install awscli && \
npm install -g slack-cli && \
rm -fR /var/cache/apk/*

# this prevent "TERM environment variable not set.""
Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ container to backup and restore your mysql database's to using awscli.
- _`$MYSQL_HOST`_ - Host where mysql is running.
- _`$FILENAME`_ - Name to file in Azure Storage. Default name `default-date +"%Y-%m-%d_%H-%M"` output example `default-2015-08-03_17-58`
- _`$BACKUP_WINDOW`_ - What time should backup run. you should use crontab format, so see [documentation](http://www.freebsd.org/cgi/man.cgi?crontab(5). default value every day at 6 am.
- _`$SLACK_TOKEN`_ - Your slack token.
- _`$SLACK_CHANNEL`_ - Slack channel to send message.

# Example of running

Expand All @@ -48,7 +50,7 @@ docker run --rm --name mysql-backup \
--env DB_NAME=mysql-db \
--env BACKUP_WINDOW='0 6 * * *' \
--env SLACK_TOKEN=abd5682jdj \
--env SLACK_GROUP=slack-group \
--env SLACK_CHANNEL=slack-group \
fernandoneto/docker-mysql-backup-s3

```
Expand Down
6 changes: 3 additions & 3 deletions bin/cron-job
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,18 @@ make_backup () {
MYSQL_PASSWORD={{MYSQL_PASSWORD}}
DB_NAME={{DB_NAME}}
SLACK_TOKEN={{SLACK_TOKEN}}
SLACK_GROUP={{SLACK_GROUP}}
SLACK_CHANNEL={{SLACK_CHANNEL}}
FILE={{FILENAME}}-$DATETIME.sql.gz

mysqldump -h $MYSQL_HOST -P $MYSQL_PORT -u $MYSQL_USER -p$MYSQL_PASSWORD $DB_NAME | gzip -9 -c | aws s3 cp - --region=$REGION s3://$BUCKET/$FILE

# exit if last command have problems
if [ "$?" == "0" ]; then
echo "Backup process complete";
slackcli -t $SLACK_TOKEN -g $SLACK_GROUP -m "Backup completed for $FILENAME"
slackcli -t $SLACK_TOKEN -h $SLACK_CHANNEL -m "Backup completed for $FILENAME"
else
echo "Error occurred in backup process. Exiting now"
slackcli -t $SLACK_TOKEN -g $SLACK_GROUP -m "Error occurred in backup process $FILENAME."
slackcli -t $SLACK_TOKEN -h $SLACK_CHANNEL -m "Error occurred in backup process $FILENAME."
kill -9 $PID
fi

Expand Down
2 changes: 1 addition & 1 deletion bin/entrypoint
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ sed 's,{{MYSQL_USER}},'"${MYSQL_USER}"',g' -i /backup/bin/cron-job
sed 's,{{MYSQL_PASSWORD}},'"${MYSQL_PASSWORD}"',g' -i /backup/bin/cron-job
sed 's,{{DB_NAME}},'"${DB_NAME}"',g' -i /backup/bin/cron-job
sed 's,{{SLACK_TOKEN}},'"${SLACK_TOKEN}"',g' -i /backup/bin/cron-job
sed 's,{{SLACK_GROUP}},'"${SLACK_GROUP}"',g' -i /backup/bin/cron-job
sed 's,{{SLACK_CHANNEL}},'"${SLACK_CHANNEL}"',g' -i /backup/bin/cron-job

touch /var/log/cron.log;
crontab -l | { cat; echo "$BACKUP_WINDOW /backup/bin/cron-job >> /var/log/cron.log 2>&1"; } | crontab -
Expand Down

0 comments on commit a0e94d6

Please sign in to comment.