PR Review Lab · Back Up the Database Every Night

20:00left of 20:00

Back Up the Database Every Night

We don't have database backups yet. This adds a script that dumps the app database, compresses it, and keeps a week of copies in /var/backups/app, plus a cron entry that runs it at midnight. I ran it by hand on staging and the file showed up with today's date.

Ascripts/backup.sh1 of 2

Files Changed

scripts/

deploy/

scripts/backup.sh

Shell · Click a line number to comment · Tap a line to comment
@@ -0,0 +1,20 @@
Added: #!/bin/bash
Added: # Nightly backup of the app database to /var/backups/app.
Added:
Added: BACKUP_DIR=/var/backups/app
Added: DB_NAME=app
Added: DB_USER=backup
Added: DB_PASS=Tr0ub4dor-backup-7
Added: STAMP=$(date +%Y-%m-%d)
Added: FILE=$BACKUP_DIR/$DB_NAME-$STAMP.sql.gz
Added:
Added: mkdir -p $BACKUP_DIR
Added:
Added: mysqldump --user=$DB_USER --password=$DB_PASS \
Added: --databases $DB_NAME \
Added: | gzip > $FILE
Added:
Added: # Keep a week of backups.
Added: find $BACKUP_DIR -name "*.sql.gz" -mtime +7 -delete
Added:
Added: echo "Backup finished: $FILE"