Mirror Servers
#!/bin/bash
# redirect stdout/stderr to a file
exec &> mirror.log
BACKUP="/var/opt/gitlab/backups/"
VCADMIN_PATH="/home/vcadmin/"
REPOS="/var/opt/gitlab/git-data/"
# TODO: check gitlab:backup for return value
# TODO: can this script be called right after vcs1 backup is sent?
echo "#############################################"
echo "# Today is $(date) #"
echo "#############################################"
echo "Stopping processes..."
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
echo "Processes status..."
# Verify
sudo gitlab-ctl status
echo "Parsing filename..."
FILENAME="$(cd /var/opt/gitlab/backups/ && echo *_gitlab_backup.tar)"
HASHED_NAME=${FILENAME::-18}
echo $HASHED_NAME
echo "Starting backup..."
sudo gitlab-rake gitlab:backup:restore BACKUP=$HASHED_NAME force=yes
echo "Starting Gitlab..."
sudo gitlab-ctl restart
echo "Sanitizing..."
sudo gitlab-rake gitlab:check SANITIZE=true
echo "Deleting backup file..."
rm -rf /var/opt/gitlab/backups/*
echo "Cleaning old repos..."
rm -rf "$REPOS"/repositories.old.*