diff --git a/share/github-backup-utils/ghe-backup-userdata b/share/github-backup-utils/ghe-backup-userdata index 9a8b7e923..9944e39dc 100755 --- a/share/github-backup-utils/ghe-backup-userdata +++ b/share/github-backup-utils/ghe-backup-userdata @@ -25,7 +25,11 @@ ghe_remote_version_required "$host" # Verify that the user data directory exists. Bail out if not, which may be due # to an older version of GHE or no data has been added to this directory yet. -ghe-ssh "$host" -- "sudo -u git [ -d '$GHE_REMOTE_DATA_USER_DIR/$dirname' ]" || exit 0 +if [ "$GHE_VERSION_MAJOR" -ge 2 ]; then + ghe-ssh "$host" -- "sudo -u git [ -d '$GHE_REMOTE_DATA_USER_DIR/$dirname' ]" || exit 0 +else + ghe-ssh "$host" -- "[ -d '$GHE_REMOTE_DATA_USER_DIR/$dirname' ]" || exit 0 +fi # If we have a previous increment and it is not empty, avoid transferring existing files via rsync's # --link-dest support. This also decreases physical space usage considerably. diff --git a/share/github-backup-utils/ghe-restore-userdata b/share/github-backup-utils/ghe-restore-userdata index abf1a6943..2156ac041 100755 --- a/share/github-backup-utils/ghe-restore-userdata +++ b/share/github-backup-utils/ghe-restore-userdata @@ -33,9 +33,14 @@ ghe_remote_version_required "$GHE_HOSTNAME" # Transfer data from the latest snapshot to the GitHub instance in a single # rsync invocation. if [ -d "$GHE_DATA_DIR/$GHE_RESTORE_SNAPSHOT/$dirname" ]; then + # Create the remote user data directory + if [ "$GHE_VERSION_MAJOR" -ge 2 ]; then + ghe-ssh "$GHE_HOSTNAME" -- "sudo -u git mkdir -p $GHE_REMOTE_DATA_USER_DIR/$dirname" + fi + ghe-rsync -avz --delete \ -e "ghe-ssh -p $(ssh_port_part "$GHE_HOSTNAME")" \ - --rsync-path="sudo -u git mkdir -p $GHE_REMOTE_DATA_USER_DIR/$dirname && sudo -u git rsync" \ + --rsync-path="sudo -u git rsync" \ "$GHE_DATA_DIR/$GHE_RESTORE_SNAPSHOT/$dirname/" \ "$(ssh_host_part "$GHE_HOSTNAME"):$GHE_REMOTE_DATA_USER_DIR/$dirname" 1>&3 fi