We hope you find this tutorial helpful. In addition to guides like this one, we provide simple cloud infrastructure for developers. Learn more →

How To Use BackupPC to Create a Backup Server on an Ubuntu 12.04 VPS

Posted Sep 23, 2013 96.2k views Backups System Tools Ubuntu


BackupPC is a backup solution that can be configured to back up remote Linux and Windows systems. It can use a variety of different protocols and has a flexible scheduler to coordinate full and incremental backups.

In this guide, we will install BackupPC on an Ubuntu 12.04 VPS and use it to back up a second Ubuntu 12.04 VPS.

Install BackupPC

BackupPC is available in Ubuntu's default repositories. The software "pulls" the data from client machines, so the actual program needs to be installed on the machine that will function as the backup server.

Open a terminal and enter the following commands:

sudo apt-get update
sudo apt-get install backuppc

During the installation, you will be asked what kind of mail server configuration is needed. We can select the "Local only" option, because we will not be configuring internet-aware mail:

                ???????? Postfix Configuration ?????????
                ? General type of mail configuration:  ? 
                ?                                      ? 
                ?       No configuration               ? 
                ?       Internet Site                  ? 
                ?       Internet with smarthost        ? 
                ?       Satellite system               ? 
                ?       Local only                     ? 
                ?                                      ? 
                ?                                      ? 
                ?       <Ok>           <Cancel>        ? 
                ?                                      ? 

On the next page, we can leave the Sytem mail name as "localhost":

 ??????????????????????????? Postfix Configuration ???????????????????????????
 ? The "mail name" is the domain name used to "qualify" _ALL_ mail           ? 
 ? addresses without a domain name. This includes mail to and from <root>:   ? 
 ? please do not make your machine send out mail from root@example.org       ? 
 ? unless root@example.org has told you to.                                  ? 
 ?                                                                           ? 
 ? This name will also be used by other programs. It should be the single,   ? 
 ? fully qualified domain name (FQDN).                                       ? 
 ?                                                                           ? 
 ? Thus, if a mail address on the local host is foo@example.org, the         ? 
 ? correct value for this option would be example.org.                       ? 
 ?                                                                           ? 
 ? System mail name:                                                         ? 
 ?                                                                           ? 
 ? localhost________________________________________________________________ ? 
 ?                                                                           ? 
 ?                    <Ok>                        <Cancel>                   ? 

Select "apache2" to configure Apache for use with BackupPC:

  ?????????????????????????? Configuring backuppc ???????????????????????????
  ? BackupPC supports any web server with CGI enabled, but this automatic   ? 
  ? configuration process only supports Apache.                             ? 
  ?                                                                         ? 
  ? Which web server would you like to reconfigure automatically:           ? 
  ?                                                                         ? 
  ?    [*] apache2                                                          ? 
  ?                                                                         ? 
  ?                                                                         ? 
  ?                                 <Ok>                                    ? 
  ?                                                                         ? 

On the next page, type "Enter" to continue with the installation.

Changing the Password

BackupPC uses a system user called "backuppc" to perform its tasks.

In addition, it configures an Apache user, also called "backuppc", with a randomly generated password, which was given briefly during installation. We can change this password to something more meaningful by typing:

sudo htpasswd /etc/backuppc/htpasswd backuppc

You will be asked to give and confirm a new password.

Configure SSH Access to Client Computers

There are a few different ways that servers and clients can communicate to authenticate and transfer data. In this guide, we will be using the rsync protocol over SSH.

To make this work, we'll need to create an SSH key pair for our system BackupPC user (called "backuppc", as mentioned above), and then transfer the key to the client machines.

First, log into the BackupPC user with the following command:

sudo su - backuppc

You will probably be presented with only a minimal prompt, represented by the dollar sign ($).

Generate an SSH key pair by typing:


You will be asked a number of questions. Just type "Enter" through all of the prompts to accept the default values.

Transferring the SSH Public Key

You now have a private and public key on your backup server. You need to transfer the public key to the root user on each client machine you wish to access.

You can do that by typing:

ssh-copy-id root@client_ip_address

Type "yes" to accept the new server's identity, and then enter the root password of the remote machine. The key should then be transfered.

Check that your key was transfered correctly by typing:

ssh root@client_ip_address

You should be able to log in without having to type a password.

Get back to the BackupPC server by typing:


Back out of the "backuppc" account by typing "exit" again:


Access the Web Interface

The rest of the guide will be configured through BackupPC's web interface.

Open a browser and navigate to:


You will be prompted for a username and password. The username is "backuppc" and the password is what you set with the htpasswd command earlier.

BackupPC main page

Set Up Client Configuration

On the left-hand side, click on the "Edit Hosts" link.

BackupPC edit hosts

Click the "Delete" button next to "localhost", since we are only backing up remote machines.

Next, click "Add". Fill in the client machine's IP address. For user, add "backuppc", since we have given that user SSH access to the host.

BackupPC remote host

Click "Save" at the top of the page.

Configure Transfer Settings

Click on the "Xfer" tab on the top of the page. Under "XferMethod", select "rsync". Under "RsyncShareName", select the path you would like to back up.

You can leave it at "/" to back up the entire computer. You can also click "Add" to add additional areas to back up if you choose not to target the entire computer.

BackupPC rsync settings

If you are backing up the entire computer, you'll need to add an "excludes" rule.

In the "BackupFilesExclude" segment, type "*" to match all shares. Then insert the values "/proc" and "/sys" to exclude these directories from back up.

BackupPC rsync excludes

Note: Failure to set up the appropriate exclude rule for the "proc" and "sys" folders can result in a backup that does not finish.

Again, click "Save" at the top of the page to enable your configuration changes.

Configure Backup Schedule

The default backup schedule is:

  • Full backup

    • Every 7 days
    • Keep only newest copy
  • Incremental backup

    • Every day
    • Keep the six most recent backups

If you would like to change the interval, click on the "Schedule" tab on the top bar.

BackupPC backup schedule

Note: You will notice that full backups have a value of "6.97" in "FullPeriod", and likewise, incremental backups have a value of "0.97" in the "IncrPeriod" field. These are values corresponding to 7 and 1 day respectively, since it accounts for the time to complete the backup as well.

You can modify the number of backups that the system maintains. You can also specify times when no backup should be performed by setting up "blackouts" where no backup can begin.

In this guide, we will stick with the default values.

Remember to click "Save" if you make any changes.

Run a Manual Backup

To run your first full backup manually, select you client from the "Hosts" drop-down menu in the upper-left corner.

You will be taken to a client summary page. Click "Start Full Backup" under the "User Actions" section.

BackupPC start full backup button

You will confirm the action on the next page.

BackupPC backup confirmation

Your backup should complete shortly, depending on the size of the droplets.

The files will be stored at:


This value will be printed in the "Backup Summary" portion of the Host summary.

BackupPC backup summary

If you click on the "Browse backups" button in the upper-left corner, you can get an overview of the filesystem, as backed up by BackupPC.

BackupPC browse backups

Using this tool, you can browse the filesystem and select the files you'd like to restore.


BackupPC is a powerful, user-friendly way to automatically backup files from several servers to a central location. Backups are essential for any kind of production environment. Just as important is making sure that file restoration operations function correctly.

There are many backup tools available for Linux and Unix-like operating systems. Choose the solution that fits your needs the best. BackupPC is a great tool that should work well in many developers' environments.

By Justin Ellingwood


Creative Commons License