BackupPC On OpenWrt

From Kyle's Wiki
Jump to: navigation, search

These are instructions for installing Openwrt on Backfire. This include rsync, all the perl stuff, ssh'ing, etc.

This is written for Openwrt Backfire (10.03) on the Kirkwood (Arm) architecture.


First you need these dependencies. I'm assuming you have the space. If you don't, where are you putting the backups?

opkg update

opkg install perl
opkg list | grep -o -E perlbase-\\w+ | xargs opkg install

opkg remove dropbear
opkg install openssh-server openssh-client 
/etc/init.d/sshd enable  # For luck!

#Now for the Xfer methods, take what you need
opkg install
opkg install rsync
opkg install tar
opkg install samba-client

#optional stuff, but again they are nice to have
opkg install net-tools  --force-overwrite  #for hostname, etc. Replaces some busybox stuff

  • That perl-file-rsyncp package from me? Yea you need it if you want to use the rsync method with backuppc. Don't ask me how I got it to cross compile. I don't think I could bear to do it again.
  • You can probably get away with dropbear instead of openssh, but openssh is so much nicer if you ask me. Be prepared to heavily edit your for backuppc if you are going to use dropbear, it doesn't use keys in the same format or the same places as openssh, which can be critical for proper functioning of backuppc if you are using rsync+ssh.
  • You probably don't need all that perl stuff, can't hurt though. I haven't filtered out what is absolutely essential or not yet.
  • A special shout out and thanks to Ted Carnahan for his awesome instructions!
  • If you are using samba, you probably want the samba tools. If you are using tar, you probably need the for-real gtar.


tar xzf BackupPC-3.1.0.tar.gz
cd BackupPC-3.1.0

Now before you run this command, maybe edit it to what you want. I don't bother using another use, I just use root to make things simpler. This command actually installs backuppc with that --batch.

./ --batch --backuppc-user=root --html-dir-url=/backuppc/ --html-dir=/www/backuppc/ --cgi-dir=/www/cgi-bin/
chmod +x /www/cgi-bin/BackupPC_Admin


An init script:

cat > /etc/init.d/backuppc <<@EOF
#!/bin/sh /etc/rc.common
# Startup init script for BackupPC for OpenWrt

start() {
    /usr/local/BackupPC/bin/BackupPC -d
stop() {
    /usr/bin/pkill -f "/usr/local/BackupPC/bin/BackupPC -d"
restart() {
reload() {
    /usr/bin/pkill -HUP "/usr/local/BackupPC/bin/BackupPC -d" -f

Then chmod and enable the startup script:

chmod 755 /etc/init.d/backuppc
/etc/init.d/backuppc enable
/etc/init.d/backuppc start

And now for basic authentication:

echo "/cgi-bin/:root:password" >> /etc/httpd.conf  #This is the username you have in your backuppc hosts file, could be anything.
/etc/init.d/uhttpd restart

Maybe some SSL while we are at it? No reason to send the password in the clear anyway.

opkg install uhttpd-mod-tls px5g
/etc/init.d/uhttpd restart
Personal tools