Skip to content

Instantly share code, notes, and snippets.

@nicolasramy
Last active August 29, 2015 14:03
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nicolasramy/0edfe0b67ed1c84b76b4 to your computer and use it in GitHub Desktop.
Save nicolasramy/0edfe0b67ed1c84b76b4 to your computer and use it in GitHub Desktop.
Simple script to deploy static websites + snapshot generation through SSH
#/bin/bash
PROJECT_NAME=my_website
WORKSPACE=/var/www
USERNAME=www-data
PORT=22
DATEMARK=`date +%Y%m%d%H%M%S`
HOSTNAME=www.example.com
CURRENT_VERSION="${WORKSPACE}/${PROJECT_NAME}"
CURRENT_SNAPSHOT="${WORKSPACE}/${DATEMARK}"
SNAPSHOT_ARCHIVE="${CURRENT_SNAPSHOT}.tar.gz"
REMOTE_CONNECTION="${USERNAME}@${HOSTNAME}"
REMOTE_WORKSPACE="${USERNAME}@${HOSTNAME}:${WORKSPACE}"
scp -P $PORT -r HEAD.tar.gz $REMOTE_WORKSPACE
ssh -p $PORT $REMOTE_CONNECTION mkdir -p "$CURRENT_SNAPSHOT"
ssh -p $PORT $REMOTE_CONNECTION cp -r $CURRENT_VERSION $CURRENT_SNAPSHOT
#
ssh -p $PORT $REMOTE_CONNECTION tar -czf $SNAPSHOT_ARCHIVE $CURRENT_SNAPSHOT
ssh -p $PORT $REMOTE_CONNECTION rm -rf $CURRENT_SNAPSHOT
#
ssh -p $PORT $REMOTE_CONNECTION mv $CURRENT_VERSION $CURRENT_SNAPSHOT
ssh -p $PORT $REMOTE_CONNECTION rm -rf $CURRENT_SNAPSHOT
#
ssh -p $PORT $REMOTE_CONNECTION tar -xzf $WORKSPACE/HEAD.tar.gz -C $WORKSPACE
ssh -p $PORT $REMOTE_CONNECTION rm $WORKSPACE/HEAD.tar.gz
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment