diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-01-18 15:32:00 -0500 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-01-18 15:32:00 -0500 |
| commit | 6cf818e948e5f4cba645251db6da4ebdc93885e4 (patch) | |
| tree | 9793a7ff5bdd0f3d1f3ad64c25f7156eeb9b759f /scripts | |
| parent | 79424677d910a87e76801bac72a5af2b5a547bcf (diff) | |
Gentoo Specific Stuff
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/dump-tool | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/scripts/dump-tool b/scripts/dump-tool new file mode 100755 index 0000000..249b17a --- /dev/null +++ b/scripts/dump-tool @@ -0,0 +1,49 @@ +#!/bin/bash + +LEVEL='0' +PROG_NAME="$(basename $0)" +XFSDUMP='/usr/bin/xfsdump' +DESTINATION="/backup" +SESSION_LABEL="weekly" +MEDIA_LABEL="root-fs" +FILESYSTEM="/" + +usage() { + printf "Usage: %s (--weekly | --daily | --hourly) [--file-system=fs] [--help]\n" $PROG_NAME > /dev/stderr +} + +while [[ $# -gt 0 ]]; do + case $1 in + --weekly) + LEVEL='0' + SESSION_LABEL="weekly" + ;; + --daily) + LEVEL='1' + SESSION_LABEL="daily" + ;; + --hourly) + LEVEL='2' + SESSION_LABEL="hourly" + ;; + --file-system=*) + FILESYSTEM=$(echo $1 | sed "s|--file-system=||g") + ;; + --help) + usage + exit 1 + ;; + *) + printf "Error: Unknown flag '%s'\n" $1 > /dev/stderr + usage + exit 1 + ;; + esac + + shift +done + +DESTINATION="$DESTINATION/backup-$(date +'%Y-%m-%d').$LEVEL.dump" + +$XFSDUMP -l $LEVEL -L $SESSION_LABEL -M $MEDIA_LABEL -f $DESTINATION $FILESYSTEM + |
