scripts/ceph/ceph.backup.deb.files.sh

38 lines
1.2 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/sh
# Purpose {{{
## This script will check if some Ceph related Debian packages are available
## in APT cache.
## And backup all of them (ceph, rados, rbd,…) in tar with version name and date.
#
## You can use this script in a cron (for periodic backup of Ceph packages) or
## directly.
# }}}
# Vars {{{
CEPH_DEB_DIR="/var/cache/apt/archives"
CEPH_DEB_PKG_FILE=$(find "${CEPH_DEB_DIR}" -maxdepth 1 -type f -iname "ceph*.deb" -print -quit)
CEPH_VERSION=$(basename "${CEPH_DEB_PKG_FILE}"|cut -d"_" -f2|sed 's/\(.*\)~.*/\1/')
BKP_DIR="/srv/ceph"
BKP_TAR_PATH="${BKP_DIR}/ceph-deb_${CEPH_VERSION}-$(date +%Y%m%d).tar"
# }}}
# Test if a "ceph" package is available
if [ "${CEPH_DEB_PKG_FILE}" ]; then
mkdir -p -- "${BKP_DIR}"
# If no backup of this version already exists, create a new one
EXISTENT_BACKUP_TAR="$(find "${BKP_DIR}" -type f -iname "ceph-deb_${CEPH_VERSION}*")"
if [ "${EXISTENT_BACKUP_TAR}" ]; then
printf '%b\n' "A backup of this version already exists: ${EXISTENT_BACKUP_TAR}"
else
printf '%b\n' "Backup of Ceph deb files in version: ${CEPH_VERSION}"
tar cf "${BKP_TAR_PATH}" "${CEPH_DEB_DIR}"/*"${CEPH_VERSION}"*.deb > /dev/null 2>&1
fi
fi
exit 0