An interrupted rsync run can leave a shorter destination file after a link drop, terminal disconnect, or stopped process. Restarting the same large transfer from the beginning wastes time and bandwidth when the existing destination file is a valid prefix of the source.
Use --partial to keep partially transferred files and --append-verify when resuming a regular file that was interrupted while being copied in order. The append-verify mode appends the missing data and then verifies the completed file, which is safer than blind append behavior when the partial file might not match the source prefix.
This method fits large archives, media files, exports, and backup bundles that are not changing while the transfer runs. Do not resume a file that the source application is still writing, and do not use append-style resume when the destination file might be unrelated or manually edited. Verify the final checksum before deleting the source, pruning older backups, or handing the file to another workflow.
$ ls -lh /srv/source/archive.img /srv/destination/archive.img -rw-r--r-- 1 root root 1.0M Jun 6 04:01 /srv/destination/archive.img -rw-r--r-- 1 root root 4.1M Jun 6 04:01 /srv/source/archive.img
The destination file is shorter, which matches an interrupted transfer. If the destination file is the same size but still suspect, verify checksums before deciding whether to rerun.
$ rsync -a --partial --append-verify --info=progress2 /srv/source/archive.img /srv/destination/
0 0% 0.00kB/s 0:00:00
4,194,318 100% 1.30GB/s 0:00:00 (xfr#1, to-chk=0/1)
4,194,318 100% 1000.00MB/s 0:00:00 (xfr#1, to-chk=0/1)
Use the same source and destination path as the interrupted run. For remote copies, keep the same remote account and destination directory.
$ sha256sum /srv/source/archive.img /srv/destination/archive.img b23127de58206b981412fc6c88f0020f3a1e8064ffe96bfb7e48693de80905a3 /srv/source/archive.img b23127de58206b981412fc6c88f0020f3a1e8064ffe96bfb7e48693de80905a3 /srv/destination/archive.img
$ rsync -a --partial --partial-dir=.rsync-partial --append-verify /srv/source/archive.img /srv/destination/
The partial directory keeps temporary resume data under the destination tree. Leave it in place until the transfer completes or until a deliberate cleanup removes abandoned partial files.
$ rm -f /srv/destination/archive.img $ rsync -a --partial --info=progress2 /srv/source/archive.img /srv/destination/
Remove only the known partial destination file. Do not delete a broader destination directory while recovering from a failed transfer.