BackupPC is a high-performance, enterprise-grade system for backing up Linux, WinXX and MacOSX PCs and laptops to a server's disk. BackupPC is highly configurable and easy to install and maintain.
Given the ever decreasing cost of disks and raid systems, it is now practical and cost effective to backup a large number of machines onto a server's local disk or network storage. This is what BackupPC does. For some sites, this might be the complete backup solution. For other sites, additional permanent archives could be created by periodically backing up the server to tape. A variety of Open Source systems are available for doing backup to tape.
BackupPC is written in Perl and extracts backup data via SMB using Samba, tar over SSH/rsh/nfs, or rsync. It is robust, reliable, well documented and freely available as Open Source on SourceForge.
- A clever pooling scheme minimizes disk storage and disk I/O. Identical files across multiple backups of the same or different PCs are stored only once resulting in substantial savings in disk storage and disk I/O.
- One example of disk use: 95 latops with each full backup averaging 3.6GB each, and each incremental averaging about 0.3GB. Storing three weekly full backups and six incremental backups per laptop is around 1200GB of raw data, but because of pooling and compression only 150GB is needed.
- Optional compression support further reducing disk storage. Since only new files (not already pooled) need to be compressed, there is only a modest impact on CPU time.
- No client-side software is needed. The standard smb protocol is used to extract backup data on WinXX clients. On linux clients, tar over SSH/rsh/nfs is used to backup the data. With version 2.0.0, rsync is also supported on any client that has rsync or rysncd.
- A powerful web (http/cgi) user interface allows administrators to view log files, configuration, current status and allows users to initiate and cancel backups and browse and restore files from backups.
- A full set of restore options is supported, including direct restore (via smbclient, tar, or rsync/rsyncd) or downloading a zip or tar file.
- Supports mobile environments where laptops are only intermittently connected to the network and have dynamic IP addresses (DHCP).
- Flexible configuration parameters allow multiple backups to be performed in parallel, specification of which shares to backup, which directories to backup or not backup, various schedules for full and incremental backups, schedules for email reminders to users and so on. Configuration parameters can be set system-wide or also on a per-PC basis.
- Users are sent periodic email reminders if their PC has not recently been backed up. Email content, timing and policies are configurable.
- Tested on Linux, Freenix and Solaris hosts, and Linux, Win95, Win98, Win2000 and WinXP clients.
- Detailed documentation.
- Open Source hosted by SourceForge and freely availble under GPL.
Here are some screen shots of BackupPC's web interface that provide an overview of various BackupPC features.
[In my opinion...]
If you want to back up your entire home network, I would recommend BackupPC running on an always-on server in your basement/closet/laundry room. From the backup server, it can connect via SSH, rsync, SMB, and other methods to any other computer (not just linux computers), and back up all of them to the server. It implements incremental storage by merging identical files via hardlinks, even if the identical files were backed up from separate computers.
BackupPC runs a web interface that you can use to customize it, including adding new computers to be backed up, initiating immediate backups, and most importantly, restoring single files or entire folders. If the BackupPC server has write permissions to the computer that you are restoring to, it can restore the files directly to where they were, which is really nice.
- Download and install the Optware QPKG
- Make sure PERL is installed:
- ipkg install update
- ipkg install perl
- ls -la /opt/bin | grep perl
- [ ! -f "/opt/bin/perl" ] && ln -sf /opt/bin/perl5.10.0 /opt/bin/perl
- Download and install the BackupPC QPKG. DO NOT ENABLE IT!
- Create a share named
- Add the
backuppcuser to the administrator group via the NAS web interface.
- Give writing permissions to the
backuppcuser to the
- Enable the QPKG and click the BackupPC web interface link.
- Login with admin/admin
- Configure it as you want. Information on how to configure this can be found here
[Documentation & FAQ]
Link: BackupPC Documentation
QPKG Version b2 - BackupPC version 3.2.1 - 25.08.11
Fixed a problem with the install script not detecting correctly all the platforms.
[Build and Install manually]
- How to install BackupPC manually? Step-by-step instruction on wiki.qnap.com
- Install docker image available in QNAP Container Station
If you had BackupPC installed manually and you want to save your work you can just rename the
/share/MD0_DATA/.qpkg/Optwarefolder to something else. eg. Optware_old and then reinstall the Optware QPKG.
Also, if you had a previous BackupPC share then no need to delete it, once you add the host the script will read previous backups and logs which are stored on the BackupPC share.
If you already have the backuppc user and group created better delete them, because the QPKG will create new ones.
If you want to change the admin user password for the BackupPC web interface just run the following command via SSH or Telnet when the QPKG is enabled:
In order for the ping command to run correctly I gave it special permissions to run as admin.Kod (Bash):
- echo "admin:YOUR_DESIRED_PASSWORD" > /root/.backuppc/opt/home/lighttpd/.lighttpdpassword
- chown backuppc /root/.backuppc/opt/home/lighttpd/.lighttpdpassword
In order to release a version for the x09 platform I need either remote access to a x09 box or if someone who has it running can send over the perl built dependencies.
The QPKG has been built following the great tuorial posted on the Qnap Wiki. Big thanks to the author.