fix: 修改
这个提交包含在:
@@ -2,7 +2,9 @@
|
|||||||
# backup.sh — 打包源目录并通过 SMB / (预留) SFTP 上传到远端
|
# backup.sh — 打包源目录并通过 SMB / (预留) SFTP 上传到远端
|
||||||
# 同时支持 Linux 与 macOS
|
# 同时支持 Linux 与 macOS
|
||||||
|
|
||||||
set -u
|
set -o pipefail
|
||||||
|
# 注意:不开启 set -u —— macOS 自带 bash 3.2,对空位置参数 / 空数组("$@"、${arr[@]})
|
||||||
|
# 会触发 unbound 报错并静默退出,导致脚本在加载完配置后就停下。
|
||||||
|
|
||||||
RED='\033[0;31m'
|
RED='\033[0;31m'
|
||||||
GREEN='\033[0;32m'
|
GREEN='\033[0;32m'
|
||||||
@@ -104,15 +106,15 @@ parse_args() {
|
|||||||
*) err "未知方式:$1"; usage; exit 1 ;;
|
*) err "未知方式:$1"; usage; exit 1 ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# 第一遍只取 --config,使后续参数能覆盖配置
|
# 第一遍只取 --config / -C,使后续参数能覆盖配置
|
||||||
local i=1
|
# 使用 for 循环 + prev 变量,兼容 bash 3.2(避免数组索引在 set -u 下出问题)
|
||||||
local argv=("$@")
|
local prev=""
|
||||||
while [[ $i -le ${#argv[@]} ]]; do
|
local arg
|
||||||
local cur="${argv[$((i-1))]}"
|
for arg in "$@"; do
|
||||||
if [[ "$cur" == "-C" || "$cur" == "--config" ]]; then
|
if [[ "$prev" == "-C" || "$prev" == "--config" ]]; then
|
||||||
CONF_FILE="${argv[$i]}"
|
CONF_FILE="$arg"
|
||||||
fi
|
fi
|
||||||
i=$((i+1))
|
prev="$arg"
|
||||||
done
|
done
|
||||||
|
|
||||||
load_conf
|
load_conf
|
||||||
@@ -182,7 +184,7 @@ create_archive() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
cleanup_local() {
|
cleanup_local() {
|
||||||
if [[ "$CLEAN_LOCAL" == "true" && -n "${ARCHIVE_FILE:-}" && -f "$ARCHIVE_FILE" ]]; then
|
if [[ "$CLEAN_LOCAL" == "true" && -n "$ARCHIVE_FILE" && -f "$ARCHIVE_FILE" ]]; then
|
||||||
rm -f "$ARCHIVE_FILE" && log "已删除本地归档:$ARCHIVE_FILE"
|
rm -f "$ARCHIVE_FILE" && log "已删除本地归档:$ARCHIVE_FILE"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|||||||
在新工单中引用
屏蔽一个用户