diff --git a/bin/backup.sh b/bin/backup.sh index 38e3933..067c32f 100755 --- a/bin/backup.sh +++ b/bin/backup.sh @@ -317,9 +317,16 @@ merge_backups() { fi # 合并打包 - tar -czf "${final_backup}" -C "${TEMP_DIR}" \ - $(basename "${folders_tar}" 2>/dev/null || true) \ - $(basename "${mysql_dump}" 2>/dev/null || true) + # 构建相对于 TEMP_DIR 的路径列表 + local files_list="" + if [[ -n "${folders_tar}" ]] && [[ -f "${folders_tar}" ]]; then + files_list+=" ${folders_tar#${TEMP_DIR}/}" + fi + if [[ -n "${mysql_dump}" ]] && [[ -f "${mysql_dump}" ]]; then + files_list+=" ${mysql_dump#${TEMP_DIR}/}" + fi + + tar -czf "${final_backup}" -C "${TEMP_DIR}" ${files_list} if [[ -f "${final_backup}" ]]; then local file_size=$(du -h "${final_backup}" | cut -f1)