diff --git a/scripts/ghe-backup-all b/scripts/ghe-backup similarity index 88% rename from scripts/ghe-backup-all rename to scripts/ghe-backup index 230871dc1..42fcc5427 100755 --- a/scripts/ghe-backup-all +++ b/scripts/ghe-backup @@ -7,6 +7,11 @@ set -e cd $(dirname "$0")/.. . scripts/ghe-backup-config +echo "" +echo "Note that your SSH key needs to be setup on the new host as described in:" +echo "* https://enterprise.github.com/help/articles/backing-up-enterprise-data" +echo "" + # Snapshot all git repository data echo "Backing up git repository data ..." 1>&2 ssh admin@"$GHE_HOSTNAME" -- 'ghe-export-repositories' > "$GHE_DATA_DIR"/ghe-repositories-backup.tar diff --git a/scripts/ghe-backup-config b/scripts/ghe-backup-config old mode 100644 new mode 100755 diff --git a/scripts/ghe-restore b/scripts/ghe-restore new file mode 100755 index 000000000..b7fcba18d --- /dev/null +++ b/scripts/ghe-restore @@ -0,0 +1,35 @@ +#!/bin/sh +# Usage: ghe-restore +# Restores a GHE instance from backups +set -e + +# Bring in the backup configuration +cd $(dirname "$0")/.. +. scripts/ghe-backup-config + +echo "" +echo "Using the files in $GHE_DATA_DIR to restore your GHE installation at $GHE_RESTORE_HOST" +echo "Note that your SSH key needs to be setup on the new host as described in:" +echo "* https://enterprise.github.com/help/articles/restoring-enterprise-data" +echo "" + +echo "Restoring git repository data ..." 1>&2 +ssh admin@$GHE_RESTORE_HOST -- 'ghe-import-repositories' < $GHE_DATA_DIR/ghe-repositories-backup.tar + +echo "Restoring GitHub Pages data ..." 1>&2 +ssh admin@$GHE_RESTORE_HOST -- 'ghe-import-pages' < $GHE_DATA_DIR/ghe-pages-backup.tar + +echo "Restoring mysql data ..." 1>&2 +gzip -dc $GHE_DATA_DIR/ghe-mysql-backup.sql.gz | ssh admin@$GHE_RESTORE_HOST -- 'ghe-import-mysql' + +echo "Restoring redis data ..." 1>&2 +ssh admin@$GHE_RESTORE_HOST -- 'ghe-import-redis' < $GHE_DATA_DIR/ghe-redis-backup.rdb + +echo "Restoring authorized keys ..." 1>&2 +ssh admin@$GHE_RESTORE_HOST -- 'ghe-import-authorized-keys' < $GHE_DATA_DIR/ghe-authorized-keys-backup.json + +echo "Restoring SSH host keys ..." 1>&2 +ssh admin@$GHE_RESTORE_HOST -- 'ghe-import-ssh-host-keys' < $GHE_DATA_DIR/ghe-ssh-host-keys-backup.tar + +echo "Restoring ES indices ..." 1>&2 +ssh admin@$GHE_RESTORE_HOST -- 'ghe-import-es-indices' < $GHE_DATA_DIR/ghe-es-indices-backup.tar diff --git a/scripts/ghe-s3-backup b/scripts/ghe-s3-backup index f7a7a7afb..2707e1089 100755 --- a/scripts/ghe-s3-backup +++ b/scripts/ghe-s3-backup @@ -15,7 +15,7 @@ else fi # Run the backup script -scripts/ghe-backup-all +scripts/ghe-backup # Create the bucket if it doesn't exist s3cmd mb s3://$GHE_S3_BUCKET diff --git a/scripts/ghe-s3-restore b/scripts/ghe-s3-restore index 9cd1d5746..943069762 100755 --- a/scripts/ghe-s3-restore +++ b/scripts/ghe-s3-restore @@ -17,29 +17,5 @@ fi # Restore from S3 s3cmd --preserve get s3://$GHE_S3_BUCKET/* $GHE_DATA_DIR -echo "" -echo "Using the files in $GHE_DATA_DIR to restore your GHE installation at $GHE_RESTORE_HOST" -echo "Note that your SSH key needs to be setup on the new host as described in:" -echo "* https://enterprise.github.com/help/articles/restoring-enterprise-data" -echo "" - -echo "Restoring git repository data ..." 1>&2 -ssh admin@$GHE_RESTORE_HOST -- 'ghe-import-repositories' < $GHE_DATA_DIR/ghe-repositories-backup.tar - -echo "Restoring GitHub Pages data ..." 1>&2 -ssh admin@$GHE_RESTORE_HOST -- 'ghe-import-pages' < $GHE_DATA_DIR/ghe-pages-backup.tar - -echo "Restoring mysql data ..." 1>&2 -gzip -dc $GHE_DATA_DIR/ghe-mysql-backup.sql.gz | ssh admin@$GHE_RESTORE_HOST -- 'ghe-import-mysql' - -echo "Restoring redis data ..." 1>&2 -ssh admin@$GHE_RESTORE_HOST -- 'ghe-import-redis' < $GHE_DATA_DIR/ghe-redis-backup.rdb - -echo "Restoring authorized keys ..." 1>&2 -ssh admin@$GHE_RESTORE_HOST -- 'ghe-import-authorized-keys' < $GHE_DATA_DIR/ghe-authorized-keys-backup.json - -echo "Restoring SSH host keys ..." 1>&2 -ssh admin@$GHE_RESTORE_HOST -- 'ghe-import-ssh-host-keys' < $GHE_DATA_DIR/ghe-ssh-host-keys-backup.tar - -echo "Restoring ES indices ..." 1>&2 -ssh admin@$GHE_RESTORE_HOST -- 'ghe-import-es-indices' < $GHE_DATA_DIR/ghe-es-indices-backup.tar +# Run the restore script +scripts/ghe-restore