Operations 6 min read

Achieving Resumable File Transfers with SCP Using Rsync, Split, and Tmux

This article explains why SCP cannot resume interrupted transfers and provides practical alternatives—including rsync with the --partial option, splitting files with the split command, and keeping sessions alive with tmux—to achieve reliable, resumable file transfers on Linux systems.

DevOps Operations Practice
DevOps Operations Practice
DevOps Operations Practice
Achieving Resumable File Transfers with SCP Using Rsync, Split, and Tmux

SCP (Secure Copy Protocol) is a SSH‑based tool for transferring files between local and remote Linux systems, but it lacks built‑in resumable transfer support.

The article first reviews basic SCP usage with example commands:

scp [options] source_file destination_path
scp file.txt user@remote_ip:/home/user/
scp user@remote_ip:/home/user/file.txt /local/path/

To overcome this limitation, rsync is introduced as an alternative that supports resumable transfers. Its basic syntax and common options are shown:

rsync [options] source_file destination_path
rsync -avz --partial file.txt user@remote_ip:/home/user/

Key options include -a (archive mode), -v (verbose), -z (compression), and --partial (keep partially transferred files). The article explains how --partial allows rsync to continue from the interruption point.

Additional rsync options such as --progress (show transfer progress), --bwlimit (limit bandwidth), and -e ssh (explicitly use SSH) are demonstrated:

rsync -avz --partial --progress --bwlimit=1000 file.txt user@remote_ip:/home/user/

The guide also offers two supplementary methods for achieving resumable SCP transfers. First, the split command can divide a large file into smaller chunks, which are then transferred individually with SCP and reassembled on the remote host using cat :

split -b 100M largefile.tar.gz part_
scp part_* user@remote_ip:/home/user/
cat part_* > largefile.tar.gz

Second, the tmux terminal multiplexer can keep the session alive, preventing SCP from being terminated when the client disconnects. Commands to start, attach, and list tmux sessions are provided:

tmux new -s file_transfer
scp largefile.tar.gz user@remote:/home/user/
tmux attach -t file_transfer
tmux ls

By using rsync, file splitting, or tmux, users can achieve reliable, resumable large‑file transfers in Linux environments.

linuxrsyncTmuxscpsplitResumable Transfer
DevOps Operations Practice
Written by

DevOps Operations Practice

We share professional insights on cloud-native, DevOps & operations, Kubernetes, observability & monitoring, and Linux systems.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.