rsync --progress and --info in CI Logs
rsync --progress prints a live progress indicator for each file; --info=progress2 shows one overall percentage instead.
Progress output is handy locally but can spam a CI log with carriage returns. --info=progress2 is the log-friendly choice.
What it does
--progress shows bytes, percentage, speed, and ETA for each file as it transfers. --info=progress2 instead shows a single running total across the whole transfer, which is far cleaner in CI. Both rely on the same machinery; -P is a shortcut for --partial --progress.
Common usage
# Per-file progress (noisy in CI)
rsync -av --progress big-artifacts/ user@host:/srv/
# One overall progress line (CI friendly)
rsync -a --info=progress2 big-artifacts/ user@host:/srv/Progress options
| Flag | What it does |
|---|---|
| --progress | Per-file progress (bytes, %, speed, ETA) |
| --info=progress2 | Single overall progress for the whole run |
| -P | Shortcut for --partial --progress |
| --info=FLAGS | Fine-grained info (stats2, name0, etc.) |
In CI
CI log viewers do not interpret the carriage returns rsync uses to redraw progress, so --progress can leave a wall of fragmented lines. Use --info=progress2 for a single clean total, or drop progress entirely and rely on --stats for a final summary.
Common errors in CI
No error is unique to --progress, but combining it with -q (quiet) is contradictory and progress wins. If you see garbled progress text in the log, switch from --progress to --info=progress2.