|
1 | 1 | #!/usr/bin/env bash |
2 | 2 |
|
3 | 3 | # ================================================================= |
4 | | -# Restic Backup Script v0.34 - 2025.09.27 |
| 4 | +# Restic Backup Script v0.35 - 2025.09.28 |
5 | 5 | # ================================================================= |
6 | 6 |
|
7 | 7 | set -euo pipefail |
8 | 8 | umask 077 |
9 | 9 |
|
10 | 10 | # --- Script Constants --- |
11 | | -SCRIPT_VERSION="0.34" |
| 11 | +SCRIPT_VERSION="0.35" |
12 | 12 | SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd) |
13 | 13 | CONFIG_FILE="${SCRIPT_DIR}/restic-backup.conf" |
14 | 14 | LOCK_FILE="/tmp/restic-backup.lock" |
@@ -298,15 +298,13 @@ handle_crash() { |
298 | 298 |
|
299 | 299 | build_backup_command() { |
300 | 300 | local cmd=(restic) |
301 | | - [ "${LOG_LEVEL:-1}" -le 0 ] && cmd+=(--quiet) |
302 | | - [ "${LOG_LEVEL:-1}" -ge 2 ] && cmd+=(--verbose) |
303 | | - [ "${LOG_LEVEL:-1}" -ge 3 ] && cmd+=(--verbose) |
| 301 | + cmd+=($(get_verbosity_flags)) |
304 | 302 | if [ -n "${SFTP_CONNECTIONS:-}" ]; then |
305 | 303 | cmd+=(-o "sftp.connections=${SFTP_CONNECTIONS}") |
306 | 304 | fi |
307 | | - cmd+=(backup) |
308 | | - [ -n "${LIMIT_THREADS:-}" ] && cmd+=(--limit-threads "${LIMIT_THREADS}") |
309 | 305 | [ -n "${LIMIT_UPLOAD:-}" ] && cmd+=(--limit-upload "${LIMIT_UPLOAD}") |
| 306 | + cmd+=(backup) |
| 307 | + [ -n "${READ_CONCURRENCY:-}" ] && cmd+=(--read-concurrency "${READ_CONCURRENCY}") |
310 | 308 | [ -n "${BACKUP_TAG:-}" ] && cmd+=(--tag "$BACKUP_TAG") |
311 | 309 | [ -n "${COMPRESSION:-}" ] && cmd+=(--compression "$COMPRESSION") |
312 | 310 | [ -n "${PACK_SIZE:-}" ] && cmd+=(--pack-size "$PACK_SIZE") |
@@ -1021,6 +1019,19 @@ run_uninstall_scheduler() { |
1021 | 1019 | fi |
1022 | 1020 | } |
1023 | 1021 |
|
| 1022 | +get_verbosity_flags() { |
| 1023 | + local effective_log_level="${LOG_LEVEL:-1}" |
| 1024 | + if [[ "${VERBOSE_MODE}" == "true" ]]; then |
| 1025 | + effective_log_level=2 # Force verbose level 2 when --verbose is used |
| 1026 | + fi |
| 1027 | + local flags=() |
| 1028 | + [ "$effective_log_level" -le 0 ] && flags+=(--quiet) |
| 1029 | + [ "$effective_log_level" -ge 2 ] && flags+=(--verbose) |
| 1030 | + [ "$effective_log_level" -ge 3 ] && flags+=(--verbose) |
| 1031 | + |
| 1032 | + echo "${flags[@]}" |
| 1033 | +} |
| 1034 | + |
1024 | 1035 | # ================================================================= |
1025 | 1036 | # MAIN OPERATIONS |
1026 | 1037 | # ================================================================= |
@@ -1120,7 +1131,9 @@ run_backup() { |
1120 | 1131 | run_forget() { |
1121 | 1132 | echo -e "${C_BOLD}--- Cleaning Old Snapshots ---${C_RESET}" |
1122 | 1133 | log_message "Running retention policy" |
1123 | | - local forget_cmd=(restic forget) |
| 1134 | + local forget_cmd=(restic) |
| 1135 | + forget_cmd+=($(get_verbosity_flags)) |
| 1136 | + forget_cmd+=(forget) |
1124 | 1137 | [ -n "${KEEP_LAST:-}" ] && forget_cmd+=(--keep-last "$KEEP_LAST") |
1125 | 1138 | [ -n "${KEEP_DAILY:-}" ] && forget_cmd+=(--keep-daily "$KEEP_DAILY") |
1126 | 1139 | [ -n "${KEEP_WEEKLY:-}" ] && forget_cmd+=(--keep-weekly "$KEEP_WEEKLY") |
|
0 commit comments