Skip to content

Instantly share code, notes, and snippets.

@icheko
Created July 30, 2014 15:22
Show Gist options
  • Save icheko/568394d1bcb8e2b30c7e to your computer and use it in GitHub Desktop.
Save icheko/568394d1bcb8e2b30c7e to your computer and use it in GitHub Desktop.
Backup Atlassian Stash
#!/bin/bash
#
# TO UNTAR: tar -xvzf stash_2014-07-24.tar.gz --strip-components=2
#
LOG_FILE=/tmp/stash_backup_log
TIMESTAMP="$$ | $(date +'%D %T') |"
TODAY=`date +'%Y-%m-%d'`
STASH_DB="stash"
TMP_DIR=/root/scripts
BACKUP_FILE=stash_db_${TODAY}.backup
STASH_HOME=/stash-home/
STASH_FS_FILE=stash_files_${TODAY}.tar.gz
STASH_COMPLETE_FILE=stash_${TODAY}.tar.gz
PGDUMP_PATH=/usr/bin
NETWORK_BACKUP_DIR=/mnt/lanai/system_backups/stash
SERVICE_PATH=/sbin
# STOP STASH SERVICE
echo "$TIMESTAMP STOPPING STASH" &>> $LOG_FILE
$SERVICE_PATH/service stash stop &>> $LOG_FILE
# DUMP DB
echo "$TIMESTAMP DUMPING STASH DB ..." &>> $LOG_FILE
$PGDUMP_PATH/pg_dump -U postgres -Fc -E UTF8 -w -o --no-owner --no-acl -f "$TMP_DIR/$BACKUP_FILE" $STASH_DB &>> $LOG_FILE
# BACKUP FILES
echo "$TIMESTAMP BACKUP FILESYSTEM" &>> $LOG_FILE
tar --dereference --exclude='log/*' -zcvf ${TMP_DIR}/${STASH_FS_FILE} ${STASH_HOME} &>> $LOG_FILE
# CREATE SINGLE FILE
echo "$TIMESTAMP CREATING SINGLE TAR" &>> $LOG_FILE
tar -zcvf ${TMP_DIR}/${STASH_COMPLETE_FILE} ${TMP_DIR}/${BACKUP_FILE} ${TMP_DIR}/${STASH_FS_FILE} &>> $LOG_FILE
# START STASH SERVICE
echo "$TIMESTAMP STARTING STASH" &>> $LOG_FILE
$SERVICE_PATH/service stash start &>> $LOG_FILE
# COPY TO DRIVE WITH MORE SPACE
echo "$TIMESTAMP MOVE TO LANAI" &>> $LOG_FILE
cp ${TMP_DIR}/${STASH_COMPLETE_FILE} ${NETWORK_BACKUP_DIR} &>> $LOG_FILE
# CLEANUP
echo "$TIMESTAMP CLEANUP" &>> $LOG_FILE
rm -fv ${TMP_DIR}/${BACKUP_FILE} &>> $LOG_FILE
rm -fv ${TMP_DIR}/${STASH_FS_FILE} &>> $LOG_FILE
rm -fv ${TMP_DIR}/${STASH_COMPLETE_FILE} &>> $LOG_FILE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment