#!/usr/bin/env bash ## Write my latest backup to a BD-R. ## ## Usage: backup2bd ## ## Dependencies: GNU coreutils, GNU sed, util-linux, xorriso ## ## All my files fit onto a 25GB BD-R because I rarely keep photos and videos. set -euo pipefail shopt -s inherit_errexit dotglob globstar die() { echo -e "$(basename "$0"): $1" >&2; exit 1; } [[ " $* " =~ ' --help ' ]] && sed -n 's/^## *//p' "$0" && exit (( UID == 0 )) || die 'must be run as root' backup=$(realpath /media/wd-25e2-2tb-2/backups/latest) # Write backup to BD-R. xorriso -outdev /dev/sr0 -map "$backup" / # Print confirmation message. eject; eject -t # This is required to mount. Why? mount /media/cdrom dest_count=$(printf '%s\n' /media/cdrom/** | wc -l) source_count=$(printf '%s\n' "$backup"/** | wc -l) echo "Wrote $dest_count of $source_count files." umount /media/cdrom eject