Skip to content

Commit edec3fa

Browse files
committed
Merge pull request #131 from github/remote-logger
Log backup/restore start/complete on remote instance
2 parents d806be4 + c58de4a commit edec3fa

3 files changed

Lines changed: 22 additions & 1 deletion

File tree

bin/ghe-backup

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,9 @@ echo "Starting backup of $GHE_HOSTNAME in snapshot $GHE_SNAPSHOT_TIMESTAMP"
6767
ghe_remote_version_required
6868
echo "$GHE_REMOTE_VERSION" > version
6969

70+
# Log backup start message in /var/log/syslog on remote instance
71+
ghe_remote_logger "Starting backup from $(hostname) in snapshot $GHE_SNAPSHOT_TIMESTAMP ..."
72+
7073
# Determine whether to use the rsync or tarball backup strategy based on the
7174
# remote appliance version. The tarball strategy must be used with GitHub
7275
# Enterprise versions prior to 11.10.340 since rsync is not available.
@@ -153,8 +156,11 @@ fi
153156
echo "Completed backup of $GHE_HOSTNAME in snapshot $GHE_SNAPSHOT_TIMESTAMP at $(date +"%H:%M:%S")"
154157

155158
# Exit non-zero and list the steps that failed.
156-
if [ -n "$failures" ]; then
159+
if [ -z "$failures" ]; then
160+
ghe_remote_logger "Completed backup from $(hostname) / snapshot $GHE_SNAPSHOT_TIMESTAMP successfully."
161+
else
157162
steps="$(echo $failures | sed 's/ /, /g')"
163+
ghe_remote_logger "Completed backup from $(hostname) / snapshot $GHE_SNAPSHOT_TIMESTAMP with failures: ${steps}."
158164
echo "Error: Snapshot incomplete. Some steps failed: ${steps}. "
159165
exit 1
160166
fi

bin/ghe-restore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,11 @@ if $instance_configured && ! $force; then
133133
echo
134134
fi
135135

136+
# Log restore start message locally and in /var/log/syslog on remote instance
136137
echo "Starting restore of $GHE_HOSTNAME from snapshot $GHE_RESTORE_SNAPSHOT"
138+
ghe_remote_logger "Starting restore from $(hostname) / snapshot $GHE_SNAPSHOT_TIMESTAMP ..."
139+
140+
# Update remote restore state file and setup failure trap
137141
trap "update_restore_status failed" EXIT
138142
update_restore_status "restoring"
139143

@@ -232,6 +236,9 @@ fi
232236
trap "" EXIT
233237
update_restore_status "complete"
234238

239+
# Log restore complete message in /var/log/syslog on remote instance
240+
ghe_remote_logger "Completed restore from $(hostname) / snapshot ${GHE_SNAPSHOT_TIMESTAMP}."
241+
235242
echo "Restoring SSH host keys ..."
236243
ghe-ssh "$GHE_HOSTNAME" -- 'ghe-import-ssh-host-keys' < "$GHE_RESTORE_SNAPSHOT_PATH/ssh-host-keys.tar" 1>&3
237244

share/github-backup-utils/ghe-backup-config

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,3 +233,11 @@ ssh_host_part () {
233233
ssh_port_part () {
234234
[ "${1##*:}" = "$1" ] && echo 22 || echo "${1##*:}"
235235
}
236+
237+
# Usage: ghe_remote_logger <message>...
238+
# Log a message to /var/log/syslog on the remote instance.
239+
# Note: Use sparingly. Remote logging requires an ssh connection per invocation.
240+
ghe_remote_logger () {
241+
echo "$@" |
242+
ghe-ssh "$GHE_HOSTNAME" -- logger -t backup-utils || true
243+
}

0 commit comments

Comments
 (0)