#!/bin/bash set -eu set -o pipefail save_directory=/backshift-production/save-directory hostname=$(hostname) subset="" function usage { retval="$1" case "$retval" in 0) ;; *) exec 1>&2 esac echo "Usage: $0 --save-directory $save_directory --hostname $hostname --subset subset" exit "$retval" } while [ "$#" -ge 1 ] do case "$1" in --save-directory) save_directory="$2" shift ;; --hostname) hostname="$2" shift ;; --subset) subset="$2" shift ;; --help|-h) usage 0 ;; *) echo "$0: Unrecognized option: $1" 1>&2 usage 1 ;; esac shift done case "$subset" in "") echo "$0: --subset is a required option" 1>&2 exit 1 ;; esac if ! [ -d "$save_directory" ] then echo "$0: --save-directory must point at a directory" 1>&2 usage 1 fi # Note that we could use --last-n to speed this up a lot. pattern="^[0-9\.]*_${hostname}_${subset}_" result=$(backshift \ --save-directory "$save_directory" \ --list-backups \ | grep "$pattern" \ | awk ' { if ($4 != "None") print $1 } ' \ | sort -n \ | tail -1) case "$result" in '') echo "$0: No backup-id found for $pattern" 1>&2 exit 1 ;; esac echo "$result"