50 lines
1.2 KiB
Bash
50 lines
1.2 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
|
||
|
# If neither of BACKUP_HELPER_DIRS and BACKUP_HELPER_COMMANDS not set. Exit
|
||
|
if [ -z "$BACKUP_HELPER_DIRS" ] && [ -z "$BACKUP_HELPER_COMMANDS" ]; then
|
||
|
echo "BACKUP_HELPER_DIRS is not set"
|
||
|
exit 1;
|
||
|
fi
|
||
|
exit_code=0;
|
||
|
|
||
|
# Backup directories
|
||
|
if [ -n "$BACKUP_HELPER_DIRS" ]; then
|
||
|
for i in ${BACKUP_HELPER_DIRS//,/ }; do
|
||
|
echo "Starting backup of $i";
|
||
|
if ! output=$(restic backup "$i"); then
|
||
|
exit_code=1;
|
||
|
echo "Backup of $i failed with exit code $?:"
|
||
|
echo "$output"
|
||
|
else
|
||
|
echo "Backup of $i successful:"
|
||
|
echo "$output"
|
||
|
fi
|
||
|
done
|
||
|
fi
|
||
|
|
||
|
# Backup command outputs
|
||
|
if [ -n "$BACKUP_HELPER_COMMANDS" ]; then
|
||
|
IFS=";" read -r -a pairs <<< "$BACKUP_HELPER_COMMANDS"
|
||
|
|
||
|
for pair in "${pairs[@]}"; do
|
||
|
IFS=":" read -r key value <<< "$pair"
|
||
|
|
||
|
if ! output=$(restic backup --stdin-filename "$key" --stdin-from-command -- "$value"); then
|
||
|
exit_code=1;
|
||
|
echo "Backup of $i failed with exit code $?:"
|
||
|
echo "$output"
|
||
|
else
|
||
|
echo "Backup of $i successful:"
|
||
|
echo "$output"
|
||
|
fi
|
||
|
|
||
|
done
|
||
|
fi
|
||
|
|
||
|
if [ "$BACKUP_FORGET" -eq 1 ]; then
|
||
|
echo "Removing old backups"
|
||
|
output=$(restic forget -d 7 -w 4 -m 6 --keep-within 1d --prune)
|
||
|
echo "$output"
|
||
|
fi
|
||
|
exit "$exit_code"
|