Rsync

Rsync is a very useful tool for backing up files. It can be used remotely.

WARNING: If your filesystem is being actively written to, data corruption may occur.

Rsync Primer

OpenBSD includes its own rewrite of rsync called openrsync. It seems to be a bit buggy so I am going to use rsync instead. The commands below, however, will work with either openrsync or rsync.

Here's how to back up the file /path/to/file on ircnow.org with username to the current directory:

$ rsync -a username@ircnow.org:/path/to/file ./

We add the option -a for archive mode.

If you have multiple files, you can use the shorthand of :/path/to/second/file:

$ rsync -a username@ircnow.org:/path/to/file :/path/to/second/file ./

This copies both /path/to/file and /path/to/second/file from ircnow.org to your current local directory.

$ rsync -a username@ircnow.org:/path/to/file :/path/to/second/file ./

We add -v options to turn on verbosity (it will display each file copied).

$ rsync -v username@ircnow.org:/path/to/file ./

Quick Check

Before you backup your files, make sure you have enough disk space. To see how much space it will take, and how much you have available, run:

$ df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/sd0a     1005M    111M    844M    12%    /
/dev/sd0k      192G   28.7G    153G    16%    /home
/dev/sd0d      3.9G   22.1M    3.7G     1%    /tmp
/dev/sd0f     12.3G    7.3G    4.4G    63%    /usr
/dev/sd0e     14.7G   41.2M   14.0G     0%    /var

Backing up /home will require at least 28.7G of space.

$ rsync --rsync-path="doas rsync" -avz username@example.com:/home/username /dest/path/

This will copy everything in /home/username on example.com into /dest/path/. -a specifies this is an archive, -v tells rsync to be more verbose (show files), and z tells rsync to compress during the transfer..