adding rdiffbak
This commit is contained in:
parent
7ec87b59a7
commit
f32baedca7
1 changed files with 70 additions and 0 deletions
70
shell/rdiffbak.sh
Executable file
70
shell/rdiffbak.sh
Executable file
|
|
@ -0,0 +1,70 @@
|
|||
#!/usr/bin/env bash
|
||||
#
|
||||
# cron: 0 1 * * * rdiffbak.sh &
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# -------------
|
||||
# CONFIG
|
||||
# -------------
|
||||
|
||||
MAILTO="me@example.com"
|
||||
MAILSUB="backup report"
|
||||
# name of the entry in ~/.mailrc
|
||||
MAILSRV="example"
|
||||
|
||||
SRC="/home/foobar"
|
||||
DST="/data/foobar"
|
||||
LOG="/data/bkplog"
|
||||
MAXAGE="1M"
|
||||
|
||||
RDIFF="/usr/bin/rdiff-backup"
|
||||
OPTIONS="--exclude-fifos --exclude-sockets --print-statistics"
|
||||
|
||||
TIMESTAMP=$(date +%Y-%m-%d_%H%M)
|
||||
LOGFILE="${LOG}/${TIMESTAMP}_backup.log"
|
||||
|
||||
mkdir -p "$LOG" || exit 1
|
||||
function mailme() {
|
||||
# ~/.mailrc needs to be configured
|
||||
if [[ -f "${LOGFILE}" ]]; then
|
||||
echo " -- EOF -- " >> "${LOGFILE}"
|
||||
# shellcheck disable=SC2002
|
||||
cat "${LOGFILE}" | mail -A "$MAILSRV" -s "${MAILSUB}" ${MAILTO}
|
||||
fi
|
||||
}
|
||||
|
||||
# ---------------
|
||||
# BACKUP
|
||||
# ---------------
|
||||
|
||||
echo " -- $TIMESTAMP -- " >> "${LOGFILE}"
|
||||
|
||||
if [[ ! -d "$SRC" ]]; then
|
||||
echo "$TIMESTAMP Invalid SRC, aborting... " >> "${LOGFILE}"
|
||||
mailme
|
||||
exit 1
|
||||
fi
|
||||
if [[ ! -d "$DST" ]]; then
|
||||
echo "$TIMESTAMP Invalid DST, aborting... " >> "${LOGFILE}"
|
||||
mailme
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Backup: $RDIFF $OPTIONS $SRC $DST" >> "${LOGFILE}"
|
||||
|
||||
$RDIFF "$OPTIONS" "$SRC" "$DST" >> "${LOGFILE}"
|
||||
RDRES=$?
|
||||
|
||||
# It went well, remove stuff older than MAXAGE
|
||||
if [[ $RDRES -eq 0 ]]; then
|
||||
$RDIFF --force --remove-older-than "$MAXAGE" "$DST" >> "${LOGFILE}"
|
||||
else
|
||||
echo "rdiff backup failed, exit: $RDRES" >> "${LOGFILE}"
|
||||
mailme
|
||||
exit 1
|
||||
fi
|
||||
|
||||
find "${LOG}" -type f -mtime +30 -delete
|
||||
mailme
|
||||
exit 0
|
||||
Loading…
Add table
Add a link
Reference in a new issue