diff --git a/README.md b/README.md index 19485ce..ccc7589 100644 --- a/README.md +++ b/README.md @@ -37,11 +37,11 @@ services: backupbot.backup: "true" backupbot.backup.pre-hook: 'mysqldump -u root -p"$(cat /run/secrets/db_root_password)" -f /tmp/dump/dump.db' backupbot.backup.post-hook: "rm -rf /tmp/dump/dump.db" - backupbot.backup.path: "/tmp/dump/" + backupbot.backup.path: "/tmp/dump/,/etc/foo/" ``` - `backupbot.backup` -- set to `true` to back up this service (REQUIRED) -- `backupbot.backup.path` -- file path within the service to copy (REQUIRED) +- `backupbot.backup.path` -- comma separated list of file paths within the service to copy (REQUIRED) - `backupbot.backup.pre-hook` -- command to run before copying files (optional) - `backupbot.backup.post-hook` -- command to run after copying files (optional) diff --git a/backup.sh b/backup.sh index fc0fb22..1ea1ad0 100755 --- a/backup.sh +++ b/backup.sh @@ -88,16 +88,19 @@ if [[ \ $*\ != *\ --skip-backup\ * ]]; then container=$(docker container ls -f "name=$service" --format '{{ .ID }}') echo "backing up $service" - test -d "$backup_path/$service" || mkdir "$backup_path/$service" if [ "$pre" != "null" ]; then # run the precommand # shellcheck disable=SC2086 docker exec "$container" sh -c "$pre" fi + + test -d "$backup_path/$service" || mkdir -p "$backup_path/$service" # run the backup - docker cp "$container:$path" "$backup_path/$service" + for p in ${path//,/ }; do + docker cp "$container:$p" "$backup_path/$service" + done if [ "$post" != "null" ]; then # run the postcommand @@ -115,5 +118,5 @@ if [[ \ $*\ != *\ --skip-backup\ * ]]; then fi if [[ \ $*\ != *\ --skip-upload\ * ]]; then - _restic backup --tag coop-cloud "$backup_path" + _restic backup --host "$server_name" --tag coop-cloud "$backup_path" fi