From 6a69cf5c88070407374e4cfe9e9e469ecad7e3b7 Mon Sep 17 00:00:00 2001 From: Ben Langfeld Date: Thu, 11 Jul 2019 15:56:07 -0300 Subject: [PATCH] Allow rolling backups to a limit When `BACKUP_COUNT` is specified on the backup container, a backup job will ensure we keep the newest `BACKUP_COUNT` backups to preserve space in our target volume. --- backup/pvc/bin/backup.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/backup/pvc/bin/backup.sh b/backup/pvc/bin/backup.sh index 631ca5b8..fe9f9c82 100644 --- a/backup/pvc/bin/backup.sh +++ b/backup/pvc/bin/backup.sh @@ -6,6 +6,11 @@ set -eo pipefail [[ -z "${BACKUP_DIR}" ]] && echo "Required 'BACKUP_DIR' env not set" && exit 1; [[ -z "${JENKINS_HOME}" ]] && echo "Required 'JENKINS_HOME' env not set" && exit 1; +if [[ ! -z "${BACKUP_COUNT}" ]]; then + echo "Trimming to only $((BACKUP_COUNT-1)) recent backups in preparation for new backup" + ls -1t ${BACKUP_DIR} | tail -n +${BACKUP_COUNT} | xargs -I '{}' rm -f ${BACKUP_DIR}/'{}' +fi + backup_number=$1 echo "Running backup" @@ -14,4 +19,4 @@ tar -C ${JENKINS_HOME} -czf "${BACKUP_DIR}/${backup_number}.tar.gz" --exclude jo [[ ! -s ${BACKUP_DIR}/${backup_number}.tar.gz ]] && echo "backup file '${BACKUP_DIR}/${backup_number}.tar.gz' is empty" && exit 1; echo Done -exit 0 \ No newline at end of file +exit 0