diff --git a/backup.sh b/backup.sh index 39ed934..1312c91 100755 --- a/backup.sh +++ b/backup.sh @@ -39,7 +39,7 @@ on_error() { local tail_log log "ERROR" "脚本异常退出(exit=$exit_code, line=${line_no})." tail_log="$(tail -n 80 "${LOG_FILE:-./backup.log}" 2>/dev/null || true)" - tg_backup_error "$LABEL" "$(date +'%Y-%m-%d %H:%M:%S')" "脚本异常退出(exit=${exit_code}, line=${line_no})" "$tail_log" + tg_backup_error "$LABEL" "脚本异常退出(exit=${exit_code}, line=${line_no})" "$tail_log" exit "$exit_code" } trap on_error ERR @@ -525,7 +525,7 @@ gen_sha if $DRY_RUN; then log "INFO" "Dry-run 模式:不执行上传。归档:${ARCHIVE_BASE} 大小:${BACKUP_SIZE_HUMAN}" log "INFO" "本次总用时:${SECONDS}s" - tg_backup_dryrun "$LABEL" "$(date +'%Y-%m-%d %H:%M:%S')" "$(printf '%s\n' "${BACKUP_PATHS[@]}")" "$(tg_read_user_excludes "$USER_EXCLUDE_FILE")" "$ARCHIVE_BASE" "$BACKUP_SIZE_HUMAN" "${PACK_SECONDS}s" + tg_backup_dryrun "$LABEL" "$(printf '%s\n' "${BACKUP_PATHS[@]}")" "$(tg_read_user_excludes "$USER_EXCLUDE_FILE")" "$ARCHIVE_BASE" "$BACKUP_SIZE_HUMAN" "${PACK_SECONDS}s" if $SELF_CHECK; then rm -f "$ARCHIVE_PATH" "$SHA_PATH" || true log "INFO" "Self-check 模式:已删除本地自检归档与校验文件" @@ -538,7 +538,7 @@ retry 3 "上传到 OBS" upload || { log "ERROR" "上传失败"; exit 4; } if ! verify_remote; then local_tail_log="$(tail -n 80 "${LOG_FILE:-./backup.log}" 2>/dev/null || true)" log "ERROR" "上传后完整性校验失败" - tg_backup_error "$LABEL" "$(date +'%Y-%m-%d %H:%M:%S')" "上传后完整性校验失败:${ARCHIVE_BASE}" "$local_tail_log" + tg_backup_error "$LABEL" "上传后完整性校验失败:${ARCHIVE_BASE}" "$local_tail_log" exit 5 fi @@ -550,6 +550,6 @@ fi TOTAL_SECS=$SECONDS SPEED_HUMAN="$(numfmt --to=iec "$AVG_SPEED")/s" log "INFO" "完成:归档大小=${BACKUP_SIZE_HUMAN} 打包=${PACK_SECONDS}s 上传=${UP_SECONDS}s 平均速率=${SPEED_HUMAN} 总用时=${TOTAL_SECS}s" -tg_backup_success "$LABEL" "$(date +'%Y-%m-%d %H:%M:%S')" "$(printf '%s\n' "${BACKUP_PATHS[@]}")" "$(tg_read_user_excludes "$USER_EXCLUDE_FILE")" "$BACKUP_SIZE_HUMAN" "$ARCHIVE_BASE" "obs://${OBS_BUCKET}/${OBS_BACKUP_DIR}/${ARCHIVE_BASE}" "${PACK_SECONDS}s" "${UP_SECONDS}s" "$SPEED_HUMAN" +tg_backup_success "$LABEL" "$(printf '%s\n' "${BACKUP_PATHS[@]}")" "$(tg_read_user_excludes "$USER_EXCLUDE_FILE")" "$BACKUP_SIZE_HUMAN" "$ARCHIVE_BASE" "obs://${OBS_BUCKET}/${OBS_BACKUP_DIR}/${ARCHIVE_BASE}" "${PACK_SECONDS}s" "${UP_SECONDS}s" "$SPEED_HUMAN" exit 0 diff --git a/clean_backups.sh b/clean_backups.sh index bb709d4..5b8cce2 100755 --- a/clean_backups.sh +++ b/clean_backups.sh @@ -29,7 +29,7 @@ on_error() { local tail_log log "ERROR" "清理异常退出(exit=${exit_code})" tail_log="$(tail -n 80 "${LOG_FILE:-./backup.log}" 2>/dev/null || true)" - tg_clean_error "$LABEL" "$(date +'%Y-%m-%d %H:%M:%S')" "脚本异常退出(exit=${exit_code})" "$tail_log" + tg_clean_error "$LABEL" "脚本异常退出(exit=${exit_code})" "$tail_log" exit "$exit_code" } trap on_error ERR @@ -89,7 +89,7 @@ LIST_OUT="$(mktemp)" if ! obsutil ls "obs://${OBS_BUCKET}/${TARGET_PREFIX}" >"$LIST_OUT" 2>/dev/null; then log "ERROR" "无法列举 obs://${OBS_BUCKET}/${TARGET_PREFIX}" rm -f "$LIST_OUT" - tg_clean_error "$LABEL" "$(date +'%Y-%m-%d %H:%M:%S')" "无法列举 obs://${OBS_BUCKET}/${TARGET_PREFIX}" "" + tg_clean_error "$LABEL" "无法列举 obs://${OBS_BUCKET}/${TARGET_PREFIX}" "" exit 6 fi @@ -136,7 +136,7 @@ else done fi -tg_clean_success "$LABEL" "$(date +'%Y-%m-%d %H:%M:%S')" "obs://${OBS_BUCKET}/${TARGET_PREFIX}" "${RETAIN_DAYS}" "${#TO_KEEP[@]}" "${DEL_OK}" "${DEL_FAIL}" +tg_clean_success "$LABEL" "obs://${OBS_BUCKET}/${TARGET_PREFIX}" "${RETAIN_DAYS}" "${#TO_KEEP[@]}" "${DEL_OK}" "${DEL_FAIL}" if (( DEL_FAIL > 0 )); then exit 6 fi diff --git a/lib/telegram.sh b/lib/telegram.sh index 499211f..e97691b 100755 --- a/lib/telegram.sh +++ b/lib/telegram.sh @@ -79,7 +79,7 @@ tg_read_user_excludes() { } tg_backup_success() { - local label="$1" current_date="$2" backup_dirs="$3" user_excludes="$4" backup_size="$5" archive_name="$6" location="$7" pack_time="$8" upload_time="$9" speed="${10}" + local label="$1" backup_dirs="$2" user_excludes="$3" backup_size="$4" archive_name="$5" location="$6" pack_time="$7" upload_time="$8" speed="$9" local archive_info message archive_info=$( cat <