28 lines
896 B
Bash
Executable File
28 lines
896 B
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
export BORG_REPO="ssh://e7e9h45y@e7e9h45y.repo.borgbase.com/./repo"
|
|
export BORG_RSH="ssh -i ~/.ssh/borg-backup"
|
|
export BORG_PASSPHRASE="Airbus12"
|
|
|
|
HOSTNAME=$(hostname)
|
|
DATE=$(date +%Y-%m-%d_%H-%M-%S)
|
|
ARCHIVE_NAME="${HOSTNAME}-${DATE}"
|
|
|
|
# Resolve symlinks externally and feed real paths to borg via --paths-from-stdin.
|
|
# - First find: locates all current* symlinks under /BACKUP and resolves them with realpath.
|
|
# - Second find: locates all regular current* files under /BACKUP (non-symlinks).
|
|
# - sort -u: deduplicates in case a resolved symlink target overlaps with a regular file.
|
|
{
|
|
find /BACKUP -name 'current*' -type l -print0 | xargs -0 -I {} realpath {}
|
|
find /BACKUP -name 'current*' ! -type l
|
|
} | sort -u | borg create \
|
|
--verbose \
|
|
--stats \
|
|
--compression lz4 \
|
|
--paths-from-stdin \
|
|
::$ARCHIVE_NAME
|
|
|
|
echo "Backup completed: $ARCHIVE_NAME"
|