diff options
author | Ludovic Pouzenc <ludovic@pouzenc.fr> | 2021-06-15 16:45:20 +0200 |
---|---|---|
committer | Ludovic Pouzenc <ludovic@pouzenc.fr> | 2021-06-15 16:45:20 +0200 |
commit | b9601cf46a75b373f6b6b902d7ac2be38ab2ffe8 (patch) | |
tree | daa3ef109d6f0b1dd7884622a2b2fba8c10e32cb /borg-family-0.2/src/sbin/bfrun | |
parent | 1ada10f44e2baf28823156c006c82a076c52f530 (diff) | |
download | borg-family-b9601cf46a75b373f6b6b902d7ac2be38ab2ffe8.tar.gz borg-family-b9601cf46a75b373f6b6b902d7ac2be38ab2ffe8.tar.bz2 borg-family-b9601cf46a75b373f6b6b902d7ac2be38ab2ffe8.zip |
borg-family_0.2-1
Diffstat (limited to 'borg-family-0.2/src/sbin/bfrun')
-rwxr-xr-x | borg-family-0.2/src/sbin/bfrun | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/borg-family-0.2/src/sbin/bfrun b/borg-family-0.2/src/sbin/bfrun new file mode 100755 index 0000000..b0f80dd --- /dev/null +++ b/borg-family-0.2/src/sbin/bfrun @@ -0,0 +1,32 @@ +#!/bin/bash +for e in bfenv bfenv2 +do + source $e + bfwhat | while IFS=' ' read -r mpe dev; do + mp=$(echo -e "$mpe") # mp: interpret escapings that may be present in /proc/mounts (\040 for space...) + name=${mp// /_}; # name: replace space by underscore + name=${mp//\//-}; name=${name/-/} # name: replace slash by dash, remove the leading one + if [[ "$mp $name $dev" =~ "--" || "$mp $name $dev" =~ ".." || "$mp $name $dev" =~ "[|&;()<>]" ]]; then + echo "Skipping $mpe because of shell unsafe characters" >&2 + continue + fi + + comment=$(blkid -- "$dev") + if [ -r "/etc/borg-family/excludes.d/$name" ]; then + runtime_args=( --comment="$comment" --exclude-from="/etc/borg-family/excludes.d/$name" ) + else + runtime_args=( --comment="$comment" ) + fi + + bfhooks before "$name" && \ + borg create "${runtime_args[@]}" "${borg_create_opts[@]}" "::{hostname}-$name-{now:%Y-%m-%d}" "$mp" + rc1=$? + bfhooks after "$name" + rc2=$? + if [ "$rc1" -ne 0 -o "$rc2" -ne 0 ]; then + echo "Errors during $name backup, return codes $rc1 (bfhook before && borg create) and $rc2 (bfhook after)" >&2 + else + [ "x$quiet" == "x1" ] || echo "Success for $name backup" + fi + done +done |