cleanup
This commit is contained in:
parent
8d816e84ab
commit
8ce4f997df
1 changed files with 0 additions and 105 deletions
105
btv.zsh
105
btv.zsh
|
@ -1,105 +0,0 @@
|
||||||
#! /bin/zsh
|
|
||||||
|
|
||||||
setopt extendedglob
|
|
||||||
|
|
||||||
function die() {
|
|
||||||
echo "!!! $1"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
### read the config file
|
|
||||||
source /etc/btv/config
|
|
||||||
|
|
||||||
### verify keyfile sanity
|
|
||||||
if [[ ! -a "${KEYFILE}" ]]; then
|
|
||||||
echo "The keyfile (${KEYFILE}) does not exist."
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
KEYFILE_OWNER=$(stat -c "%u" $KEYFILE)
|
|
||||||
KEYFILE_ACCESS=$(stat -c "%a" $KEYFILE)
|
|
||||||
|
|
||||||
if [[ ${KEYFILE_OWNER} -ne 0 ]]; then
|
|
||||||
echo "The keyfile (${KEYFILE}) is owned by UID ${KEYFILE_OWNER}, it should be 0 (root)."
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ${KEYFILE_ACCESS} -ne 600 ]]; then
|
|
||||||
echo "The keyfile (${KEYFILE}) has permissions ${KEYFILE_ACCESS}, it should be 600 (rw-------)."
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
VERB="$1"
|
|
||||||
shift
|
|
||||||
|
|
||||||
function drop_snap {
|
|
||||||
SNAP="${1}"
|
|
||||||
|
|
||||||
for S in "${SNAP}/"*
|
|
||||||
do
|
|
||||||
btrfs subvolume delete "$S"
|
|
||||||
done
|
|
||||||
|
|
||||||
rmdir "${SNAP}"
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$VERB" in
|
|
||||||
(snap*)
|
|
||||||
T="$(date +%Y-%m-%d.%H%M%S)"
|
|
||||||
SNAP="${SNAP_DIR}/${T}"
|
|
||||||
echo "Creating snapshot ${SNAP}"
|
|
||||||
mkdir "${SNAP}" || die "failed to mkdir ${SNAP}"
|
|
||||||
|
|
||||||
cd "${SUBVOL_DIR}" || die "failed to cd ${SUBVOL_DIR}"
|
|
||||||
|
|
||||||
for SUB in ^${SUBVOL_IGNORE_PREFIX}*
|
|
||||||
do
|
|
||||||
btrfs subvolume snapshot -r "${SUB}" "${SNAP}/${SUB}" || die "failed to btrfs snap ${SUB}"
|
|
||||||
done
|
|
||||||
|
|
||||||
;;
|
|
||||||
|
|
||||||
(list)
|
|
||||||
cd "${SNAP_DIR}"
|
|
||||||
|
|
||||||
for SNAP in *
|
|
||||||
do
|
|
||||||
if [[ -f "${SNAP}/streamed" ]]; then
|
|
||||||
printf "S"
|
|
||||||
else
|
|
||||||
printf " "
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "S = streamed to storage"
|
|
||||||
echo "R = scheduled for removal"
|
|
||||||
|
|
||||||
;;
|
|
||||||
|
|
||||||
(drop)
|
|
||||||
SNAP="${SNAP_DIR}/${1}"
|
|
||||||
|
|
||||||
if [[ ! -d ${SNAP} ]]; then
|
|
||||||
echo "Snapshot ${1} does not exist"
|
|
||||||
exit 3
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Dropping $SNAP"
|
|
||||||
drop_snap "$SNAP"
|
|
||||||
;;
|
|
||||||
|
|
||||||
(clean*)
|
|
||||||
echo ">>> gc"
|
|
||||||
;;
|
|
||||||
|
|
||||||
(stream)
|
|
||||||
echo ">>> stream $1"
|
|
||||||
;;
|
|
||||||
|
|
||||||
(*)
|
|
||||||
echo "Unknown verb: ${VERB}"
|
|
||||||
exit 3
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue