Enabling reading dirlist from file

This commit is contained in:
Hannes Körber
2019-04-18 18:58:35 +02:00
parent 7737953b08
commit 714e14125c

View File

@@ -16,7 +16,10 @@ export GNUPGHOME="$(mktemp -d)"
bucket="${1}" ; shift bucket="${1}" ; shift
name="${1}" ; shift name="${1}" ; shift
backup_source="${1}" ; shift backup_sources_file="${1}" ; shift
declare -a backup_sources
readarray backup_sources < "${backup_sources_file}"
install --directory --owner $(id -u) --group $(id -g) --mode 700 "${GNUPGHOME}" install --directory --owner $(id -u) --group $(id -g) --mode 700 "${GNUPGHOME}"
@@ -29,6 +32,7 @@ trap cleanup EXIT
tmpgpg() { tmpgpg() {
gpg \ gpg \
--batch \ --batch \
--keyid-format=0xlong \
--no-default-keyring \ --no-default-keyring \
--no-options \ --no-options \
--trust-model always \ --trust-model always \
@@ -36,44 +40,55 @@ tmpgpg() {
} }
tmpgpg --import "${dir}/pubkey.asc" tmpgpg --import "${dir}/pubkey.asc"
find \ tmpgpg -k
"${backup_source}" \
\( \ timestamp="$(date --utc -Iseconds)"
-regex "${backup_source}.*nextcloud/.*/files_trashbin" \
-o \ for backup_dir in "${backup_sources[@]}" ; do
-regex "${backup_source}.*nextcloud/nextcloud.log" \ backup_dir_expanded=($(eval "echo $backup_dir"))
-o \ for dir in "${backup_dir_expanded[@]}" ; do
-regex "${backup_source}.*registry/docker/registry" \ echo $dir
-o \ set -x
-regex "${backup_source}.*gogs/.*/gogs.log.*" \ find \
-o \ "${dir[@]}" \
-regex "${backup_source}.*gogs/gogs/data/sessions/.*" \ \( \
-o \ -regex "${dir}.*/files_trashbin" \
-regex "${backup_source}.*/cache/.*" \ -o \
\) \ -regex "${dir}.*nextcloud.log.*" \
-prune \ -o \
-o \ -regex "${dir}.*registry/docker/registry" \
-print0 \ -o \
| tar \ -regex "${dir}.*/gogs.log.*" \
--create \ -o \
--verbose \ -regex "${dir}.*gogs/data/sessions/.*" \
--no-auto-compress \ -o \
--ignore-failed-read \ -regex "${dir}.*/cache/.*" \
--acls \ \) \
--selinux \ -prune \
--xattrs \ -o \
--null \ -print0 \
--no-recursion \ | tar \
--files-from - \ --create \
--file - \ --verbose \
| gzip \ --no-auto-compress \
--to-stdout \ --ignore-failed-read \
| tmpgpg \ --acls \
--output - \ --selinux \
--encrypt \ --xattrs \
--recipient 0x078A167A8741BD30 \ --null \
| aws \ --force-local \
s3 cp \ --no-recursion \
--storage-class=DEEP_ARCHIVE \ --files-from - \
- \ --file - \
"s3://${bucket}/${name}-$(date --utc -Iseconds).tar.gz.gpg" | gzip \
--to-stdout \
| tmpgpg \
--output - \
--encrypt \
--recipient 0x078A167A8741BD30 \
| aws \
s3 cp \
- \
"s3://${bucket}/${name}-${timestamp}/${dir}.tar.gz.gpg"
done
done