diff --git a/backup/backup.sh b/backup/backup.sh index 4bcc469..e3a1609 100644 --- a/backup/backup.sh +++ b/backup/backup.sh @@ -308,17 +308,18 @@ create_archive() { tar -czf "$archive" "${paths[@]}" 2>"$tar_log" & local tar_pid=$! - local start_ts=$(date +%s) cur_kb pct elapsed + local start_ts=$(date +%s) cur_kb elapsed while kill -0 "$tar_pid" 2>/dev/null; do sleep 5 kill -0 "$tar_pid" 2>/dev/null || break cur_kb="$(du -k "$archive" 2>/dev/null | awk '{print $1+0}')" elapsed=$(( $(date +%s) - start_ts )) + # 注意:cur_kb 是压缩后归档大小,src_kb 是未压缩的源大小, + # 二者不在同一量纲,故不显示百分比,只展示两个数字作为参考。 if [[ "$src_kb" -gt 0 ]]; then - pct=$(awk -v c="$cur_kb" -v s="$src_kb" 'BEGIN{p=c*100/s; if(p>99)p=99; printf "%.0f", p}') - log "打包进度:已写入 $(awk -v k="$cur_kb" 'BEGIN{printf "%.2fG", k/1024/1024}') / $(awk -v k="$src_kb" 'BEGIN{printf "%.2fG", k/1024/1024}') (${pct}%),耗时 ${elapsed}s" + log "打包进度:已写入 $(awk -v k="$cur_kb" 'BEGIN{printf "%.2fG", k/1024/1024}')(压缩后)/ 源约 $(awk -v k="$src_kb" 'BEGIN{printf "%.2fG", k/1024/1024}'),耗时 ${elapsed}s" else - log "打包进度:已写入 $(awk -v k="$cur_kb" 'BEGIN{printf "%.2fG", k/1024/1024}'),耗时 ${elapsed}s" + log "打包进度:已写入 $(awk -v k="$cur_kb" 'BEGIN{printf "%.2fG", k/1024/1024}'),耗时 ${elapsed}s" fi done