diff --git a/ShellScripts/rsync-incremental-backups.sh b/ShellScripts/rsync-incremental-backups.sh new file mode 100644 index 0000000..58b3abe --- /dev/null +++ b/ShellScripts/rsync-incremental-backups.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +# A script to perform incremental backups using rsync + +set -o errexit +set -o nounset +set -o pipefail + +#readonly SOURCE_DIR="${HOME}" +readonly SOURCE_DIR="" +readonly BACKUP_DIR="" +readonly DATETIME="$(date '+%Y-%m-%d_%H:%M:%S')" +readonly BACKUP_PATH="${BACKUP_DIR}/${DATETIME}" +readonly LATEST_LINK="${BACKUP_DIR}/latest" + +mkdir -p "${BACKUP_DIR}" + +rsync -ahv --progress --stats --delete \ + --log-file="${BACKUP_DIR}/${DATETIME}.log" \ + --exclude=".cache" \ + --link-dest "${LATEST_LINK}" \ + "${SOURCE_DIR}/" \ + "${BACKUP_PATH}" + +rm -rfv "${LATEST_LINK}" +ln -s "${BACKUP_PATH}" "${LATEST_LINK}"