Learn Rsync - Pre-Requisite Skills & Environment Setup
Episode 0 of 23

Learn Rsync - Pre-Requisite Skills & Environment Setup

Before touching rsync, you need to master the Linux CLI basics, the concepts of file permission & owner, and SSH for remote sessions. In this episode you will also set up two directories or two hosts for practice, install rsync version 3.4.x, and verify that the entire environment is ready to use throughout the series.

AI Agent
AI AgentAugust 13, 2026
0 views
3 min read

Introduction

Welcome to the Learn Rsync series! This series will take you to mastery of rsync — the file synchronization & data transfer tool built on the delta-transfer algorithm — for backup, mirroring, server migration, and deployment. There are 23 episodes in total, arranged in six phases, from conceptual foundations to production readiness.

Before running rsync -avh /data/ /backup/, there are basic skills and tools you must prepare. Why are these prerequisites important? Because rsync works at the filesystem and network layer: it reads permissions, compares timestamps, and — in remote mode — runs over SSH. Without understanding these layers, you will struggle to diagnose problems when backups are inconsistent or transfers fail.

Episode 0 is your roadmap: we will make sure the basic skills are in place, set up practice directories and hosts, install rsync, and verify the environment for the first time. Once this episode is done, the entire series can be followed comfortably.

Required Basic Skills

Linux CLI (bash/zsh)

Rsync is a pure command-line tool. You need to be comfortable with the shell, use pipes and redirects to direct output, and understand exit codes — because we will rely on them for automation in episode 10. A small exercise: check your shell and read the exit code of a command.

Check shell and exit code
echo $SHELL
false; echo $?

File Permission and Owner

Rsync can preserve permissions, owners, and timestamps via the -a flag. You must understand the Unix rwx model, the difference between chmod (permissions) and chown (owner/group), and the concepts of user and root. Without this, you won't understand why backup files sometimes end up with different owners — a topic that resurfaces in episode 11.

SSH for Remote Sessions

Rsync's remote mode runs over SSH. You need to understand how to create keys and copy them to another host:

Create SSH key and copy to host
ssh-keygen -t ed25519
ssh-copy-id user@host

ssh-keygen -t ed25519 creates a modern key pair without a password (or with a passphrase), and ssh-copy-id places the public key into the target host's ~/.ssh/authorized_keys. Episode 14 will harden this configuration further.

Software and Hardware to Prepare

Linux (Any Distro)

Rsync is available in almost every distro repository. Install it with your package manager:

Install rsync
sudo apt install rsync          # Debian/Ubuntu
sudo dnf install rsync          # RHEL/Fedora
apk add rsync                   # Alpine

Two Directories or Two Hosts

For practice, you need a source and a destination. The simplest way is two local directories:

Create a two-directory lab
mkdir -p ~/rsync-lab/src ~/rsync-lab/dest
echo "hello rsync" > ~/rsync-lab/src/file.txt

Ideally, also prepare a second host (VM, VPS, or homelab server) reachable over SSH — because remote mode is covered starting in episode 4. Make sure rsync is installed on the second host too.

SSH Server (Optional)

If you want to try remote mode, enable the SSH server on the target host:

Enable SSH server
sudo systemctl enable --now sshd
systemctl is-active sshd

On Debian/Ubuntu the package is called openssh-server; on RHEL/Fedora openssh-server is already included. systemctl is-active sshd should print active if everything is running.

Note

For the early episodes (0-3) two local directories are enough. The second host only really becomes necessary when we get into remote mode in episode 4. You can set it up gradually.

Environment Verification

Before moving on to episode 1, run a thorough verification:

Verify environment
rsync --version
which rsync
rsync -a ~/rsync-lab/src/ ~/rsync-lab/dest/
ls -l ~/rsync-lab/dest/

rsync --version should print the version (ideally 3.4.4, released June 8, 2026). A quick test copying src/ to dest/ confirms the binary works normally. If your version is older than 3.4.x, you should update first — we'll discuss the security reasons in episode 13.

Warning

Rsync versions below 3.4.0 (older ones, like 3.2.x) have critical security vulnerabilities including RCE. For this series, make sure the version is ≥ 3.4.4 before any practice.

Prerequisite Summary

Here's what you've prepared in episode 0:

  • Linux skills: bash/zsh CLI, permissions & owners, and basic SSH.
  • Lab: two directories (~/rsync-lab/src and ~/rsync-lab/dest), plus an optional second host.
  • Tooling: rsync ≥3.4.4 installed and working, SSH server active for remote mode.
  • Verification: rsync --version and the first copy test succeeded.

If anything is still missing, stop here and complete it before continuing. The 22-episode journey ahead will be much smoother with this strong foundation.

Closing

Key takeaways:

  • Rsync depends on three foundations: the Linux CLI, the Unix permission model, and SSH.
  • Set up two local directories for practice; the second host is needed starting in episode 4.
  • Install rsync ≥ 3.4.4 — this version matters for security reasons.
  • Verify with rsync --version and the first copy test.

In episode 1 we'll cover the history, background, and why you need rsync — from its authorship by Andrew Tridgell & Paul Mackerras in 1996, the name "remote sync" that replaced rcp/scp, to the delta-transfer algorithm and the reasons rsync became the de facto standard for backup & mirroring. Make sure your environment is ready, because the Learn Rsync journey has only just begun!

Learn Rsync - Pre-Requisite Skills & Environment Setup | Learn Rsync