Using Openrsync
OpenRsync is OpenBSD's rewrite of rsync. openrsync is designed to be lightweight and simple. It may, however, be a little buggy.
WARNING: If your filesystem is being actively written to, data corruption may occur.
OpenRsync Primer
To back up the file /path/to/file on example.com with username to the current directory:
$ openrsync -a username@example.com:/path/to/file ./
This table explains the most common options:
Option | Purpose |
---|---|
a | (a)rchive mode, shorthand for Dgloprt |
D | Transfers (D)evice and special files |
g | Sets (g)roup to match the source |
l | Transfers symbolic (l)inks |
o | Sets (o)wner to match the source (needs root) |
p | Synchronizes (p)ermissions |
r | (r)ecursive |
t | Synchronize (t)imestamps |
v | Increase (v)erbosity |
If the server does not have rsync but instead uses openrsync, you will want
to add the option --rsync-path=openrsync
:
$ openrsync -a --rsync-path=openrsync username@example.com:/path/to/file ./
If you have multiple files, you can use the shorthand of :/path/to/second/file:
$ openrsync -a --rsync-path=openrsync username@example.com:/path/to/file :/path/to/second/file ./
This copies both /path/to/file and /path/to/second/file from example.com to your current local directory.
openrsync can also copy folders recursively. To see each file copied, turn on verbosity with -v
. In the next example, we copy from /path/to/folder on the local system to /path/to/destination in example.com
:
$ openrsync -av --rsync-path=openrsync /path/to/folder username@example.com:/path/to/destination/
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.
$ openrsync -av --rsync-path=openrsync username@example.com:/home/username /dest/path/
This will copy everything in /home/username on example.com
into /dest/path/.