BackupPC: Difference between revisions

From miki
Jump to navigation Jump to search
Line 105: Line 105:
/usr/syno/bin/rsync
/usr/syno/bin/rsync
Mnemosyne> ipkg install perl par2cmdline tar
Mnemosyne> ipkg install perl par2cmdline tar
Installing perl (5.8.8-24) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/perl_5.8.8-24_powerpc.ipk
Installing libdb (4.2.52-3) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/libdb_4.2.52-3_powerpc.ipk
Installing gdbm (1.8.3-4) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/gdbm_1.8.3-4_powerpc.ipk
Installing par2cmdline (0.4-4) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/par2cmdline_0.4-4_powerpc.ipk
Installing libstdc++ (6.0.3-6) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/libstdc++_6.0.3-6_powerpc.ipk
Installing tar (1.26-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/tar_1.26-1_powerpc.ipk
package tar suggests installing bzip2
package tar suggests installing gzip
package tar suggests installing xz-utils
Configuring gdbm
Configuring libdb
Configuring libstdc++
Configuring par2cmdline
Configuring perl
Configuring tar
update-alternatives: Linking //opt/bin/tar to /opt/bin/gnutar
Successfully terminated.
Mnemosyne> ipkg install perl-compress-zlib perl-archive-zip
Mnemosyne> ipkg install perl-compress-zlib perl-archive-zip
Installing perl-compress-zlib (1.42-3) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/perl-compress-zlib_1.42-3_powerpc.ipk
Installing zlib (1.2.5-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/zlib_1.2.5-1_powerpc.ipk
Installing perl-archive-zip (1.16-3) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/perl-archive-zip_1.16-3_powerpc.ipk
Configuring perl-archive-zip
Configuring perl-compress-zlib
Configuring zlib
Successfully terminated.
Mnemosyne> which perl
Mnemosyne> which perl
/opt/bin/perl
/opt/bin/perl
Mnemosyne> ipkg install optware-devel
Mnemosyne> ipkg install optware-devel
Installing optware-devel (6.8-10) to root...
Installing optware-devel (6.8-10) to root...
...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/optware-devel_6.8-10_powerpc.ipk
package apr-util suggests installing sqlite
package apr-util suggests installing openldap-libs
Installing autoconf (2.69-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/autoconf_2.69-1_powerpc.ipk
Installing make (3.82-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/make_3.82-1_powerpc.ipk
Installing m4 (1.4.16-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/m4_1.4.16-1_powerpc.ipk
Installing automake (1.12-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/automake_1.12-1_powerpc.ipk
Installing bash (3.2.54-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/bash_3.2.54-1_powerpc.ipk
Installing readline (6.1-2) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/readline_6.1-2_powerpc.ipk
Installing ncurses (5.7-3) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/ncurses_5.7-3_powerpc.ipk
Installing bison (2.5.1-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/bison_2.5.1-1_powerpc.ipk
Installing bzip2 (1.0.6-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/bzip2_1.0.6-1_powerpc.ipk
Installing coreutils (8.4-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/coreutils_8.4-1_powerpc.ipk
Installing diffutils (3.1-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/diffutils_3.1-1_powerpc.ipk
Installing file (5.12-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/file_5.12-1_powerpc.ipk
Installing findutils (4.2.32-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/findutils_4.2.32-1_powerpc.ipk
Installing flex (2.5.35-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/flex_2.5.35-1_powerpc.ipk
Installing gawk (4.0.1-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/gawk_4.0.1-1_powerpc.ipk
Installing groff (1.19.2-2) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/groff_1.19.2-2_powerpc.ipk
Installing gzip (1.5-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/gzip_1.5-1_powerpc.ipk
Installing libtool (1.5.26-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/libtool_1.5.26-1_powerpc.ipk
Installing openssl (0.9.8v-2) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/openssl_0.9.8v-2_powerpc.ipk
Installing patch (2.6.1-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/patch_2.6.1-1_powerpc.ipk
Installing pkgconfig (0.15.0-2) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/pkgconfig_0.15.0-2_powerpc.ipk
Installing python25 (2.5.6-2) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/python25_2.5.6-2_powerpc.ipk
Installing sqlite (3.8.1-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/sqlite_3.8.1-1_powerpc.ipk
Installing ncursesw (5.7-2) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/ncursesw_5.7-2_powerpc.ipk
Installing rsync (3.0.9-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/rsync_3.0.9-1_powerpc.ipk
Installing sed (4.2.2-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/sed_4.2.2-1_powerpc.ipk
Installing svn (1.7.7-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/svn_1.7.7-1_powerpc.ipk
Installing neon (0.29.6-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/neon_0.29.6-1_powerpc.ipk
Installing libxml2 (2.7.8-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/libxml2_2.7.8-1_powerpc.ipk
Installing apr (1.4.6-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/apr_1.4.6-1_powerpc.ipk
Installing apr-util (1.4.1-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/apr-util_1.4.1-1_powerpc.ipk
Installing e2fslibs (1.40.3-5) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/e2fslibs_1.40.3-5_powerpc.ipk
Installing expat (2.0.1-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/expat_2.0.1-1_powerpc.ipk
Installing cyrus-sasl-libs (2.1.23-2) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/cyrus-sasl-libs_2.1.23-2_powerpc.ipk
Installing psmisc (22.11-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/psmisc_22.11-1_powerpc.ipk
Installing openldap-libs (2.3.43-2) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/openldap-libs_2.3.43-2_powerpc.ipk
Installing tcl (8.4.19-2) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/tcl_8.4.19-2_powerpc.ipk
Installing wget-ssl (1.12-2) to root...
Configuring apr
Configuring apr-util
Configuring autoconf
Configuring automake
Configuring bash
Configuring bison
Configuring bzip2
update-alternatives: Linking //opt/bin/bzip2 to /opt/bin/bzip2-bzip2
Configuring coreutils
update-alternatives: Linking //opt/bin/[ to coreutils-lbracket
update-alternatives: Linking //opt/bin/base64 to coreutils-base64
update-alternatives: Linking //opt/bin/basename to coreutils-basename
update-alternatives: Linking //opt/bin/cat to coreutils-cat
update-alternatives: Linking //opt/bin/chcon to coreutils-chcon
update-alternatives: Linking //opt/bin/chgrp to coreutils-chgrp
update-alternatives: Linking //opt/bin/chmod to coreutils-chmod
update-alternatives: Linking //opt/bin/chown to coreutils-chown
update-alternatives: Linking //opt/bin/chroot to coreutils-chroot
update-alternatives: Linking //opt/bin/cksum to coreutils-cksum
update-alternatives: Linking //opt/bin/comm to coreutils-comm
update-alternatives: Linking //opt/bin/cp to coreutils-cp
update-alternatives: Linking //opt/bin/csplit to coreutils-csplit
update-alternatives: Linking //opt/bin/cut to coreutils-cut
update-alternatives: Linking //opt/bin/date to coreutils-date
update-alternatives: Linking //opt/bin/dd to coreutils-dd
update-alternatives: Linking //opt/bin/df to coreutils-df
update-alternatives: Linking //opt/bin/dir to coreutils-dir
update-alternatives: Linking //opt/bin/dircolors to coreutils-dircolors
update-alternatives: Linking //opt/bin/dirname to coreutils-dirname
update-alternatives: Linking //opt/bin/du to coreutils-du
update-alternatives: Linking //opt/bin/echo to coreutils-echo
update-alternatives: Linking //opt/bin/env to coreutils-env
update-alternatives: Linking //opt/bin/expand to coreutils-expand
update-alternatives: Linking //opt/bin/expr to coreutils-expr
update-alternatives: Linking //opt/bin/factor to coreutils-factor
update-alternatives: Linking //opt/bin/false to coreutils-false
update-alternatives: Linking //opt/bin/fmt to coreutils-fmt
update-alternatives: Linking //opt/bin/fold to coreutils-fold
update-alternatives: Linking //opt/bin/groups to coreutils-groups
update-alternatives: Linking //opt/bin/head to coreutils-head
update-alternatives: Linking //opt/bin/hostid to coreutils-hostid
update-alternatives: Linking //opt/bin/id to coreutils-id
update-alternatives: Linking //opt/bin/install to coreutils-install
update-alternatives: Linking //opt/bin/join to coreutils-join
update-alternatives: Linking //opt/bin/kill to coreutils-kill
update-alternatives: Linking //opt/bin/link to coreutils-link
update-alternatives: Linking //opt/bin/ln to coreutils-ln
update-alternatives: Linking //opt/bin/logname to coreutils-logname
update-alternatives: Linking //opt/bin/ls to coreutils-ls
update-alternatives: Linking //opt/bin/md5sum to coreutils-md5sum
update-alternatives: Linking //opt/bin/mkdir to coreutils-mkdir
update-alternatives: Linking //opt/bin/mkfifo to coreutils-mkfifo
update-alternatives: Linking //opt/bin/mknod to coreutils-mknod
update-alternatives: Linking //opt/bin/mktemp to coreutils-mktemp
update-alternatives: Linking //opt/bin/mv to coreutils-mv
update-alternatives: Linking //opt/bin/nice to coreutils-nice
update-alternatives: Linking //opt/bin/nl to coreutils-nl
update-alternatives: Linking //opt/bin/nohup to coreutils-nohup
update-alternatives: Linking //opt/bin/nproc to coreutils-nproc
update-alternatives: Linking //opt/bin/od to coreutils-od
update-alternatives: Linking //opt/bin/paste to coreutils-paste
update-alternatives: Linking //opt/bin/pathchk to coreutils-pathchk
update-alternatives: Linking //opt/bin/pinky to coreutils-pinky
update-alternatives: Linking //opt/bin/pr to coreutils-pr
update-alternatives: Linking //opt/bin/printenv to coreutils-printenv
update-alternatives: Linking //opt/bin/printf to coreutils-printf
update-alternatives: Linking //opt/bin/ptx to coreutils-ptx
update-alternatives: Linking //opt/bin/pwd to coreutils-pwd
update-alternatives: Linking //opt/bin/readlink to coreutils-readlink
update-alternatives: Linking //opt/bin/rm to coreutils-rm
update-alternatives: Linking //opt/bin/rmdir to coreutils-rmdir
update-alternatives: Linking //opt/bin/runcon to coreutils-runcon
update-alternatives: Linking //opt/bin/seq to coreutils-seq
update-alternatives: Linking //opt/bin/sha1sum to coreutils-sha1sum
update-alternatives: Linking //opt/bin/sha224sum to coreutils-sha224sum
update-alternatives: Linking //opt/bin/sha256sum to coreutils-sha256sum
update-alternatives: Linking //opt/bin/sha384sum to coreutils-sha384sum
update-alternatives: Linking //opt/bin/sha512sum to coreutils-sha512sum
update-alternatives: Linking //opt/bin/shred to coreutils-shred
update-alternatives: Linking //opt/bin/shuf to coreutils-shuf
update-alternatives: Linking //opt/bin/sleep to coreutils-sleep
update-alternatives: Linking //opt/bin/sort to coreutils-sort
update-alternatives: Linking //opt/bin/split to coreutils-split
update-alternatives: Linking //opt/bin/stat to coreutils-stat
update-alternatives: Linking //opt/bin/stdbuf to coreutils-stdbuf
update-alternatives: Linking //opt/bin/stty to coreutils-stty
update-alternatives: Linking //opt/bin/su to coreutils-su
update-alternatives: Linking //opt/bin/sum to coreutils-sum
update-alternatives: Linking //opt/bin/sync to coreutils-sync
update-alternatives: Linking //opt/bin/tac to coreutils-tac
update-alternatives: Linking //opt/bin/tail to coreutils-tail
update-alternatives: Linking //opt/bin/tee to coreutils-tee
update-alternatives: Linking //opt/bin/test to coreutils-test
update-alternatives: Linking //opt/bin/timeout to coreutils-timeout
update-alternatives: Linking //opt/bin/touch to coreutils-touch
update-alternatives: Linking //opt/bin/tr to coreutils-tr
update-alternatives: Linking //opt/bin/true to coreutils-true
update-alternatives: Linking //opt/bin/truncate to coreutils-truncate
update-alternatives: Linking //opt/bin/tsort to coreutils-tsort
update-alternatives: Linking //opt/bin/tty to coreutils-tty
update-alternatives: Linking //opt/bin/uname to coreutils-uname
update-alternatives: Linking //opt/bin/unexpand to coreutils-unexpand
update-alternatives: Linking //opt/bin/uniq to coreutils-uniq
update-alternatives: Linking //opt/bin/unlink to coreutils-unlink
update-alternatives: Linking //opt/bin/uptime to coreutils-uptime
update-alternatives: Linking //opt/bin/users to coreutils-users
update-alternatives: Linking //opt/bin/vdir to coreutils-vdir
update-alternatives: Linking //opt/bin/wc to coreutils-wc
update-alternatives: Linking //opt/bin/who to coreutils-who
update-alternatives: Linking //opt/bin/whoami to coreutils-whoami
update-alternatives: Linking //opt/bin/yes to coreutils-yes
Configuring cyrus-sasl-libs
Configuring diffutils
update-alternatives: Linking //opt/bin/cmp to /opt/bin/diffutils-cmp
update-alternatives: Linking //opt/bin/diff to /opt/bin/diffutils-diff
update-alternatives: Linking //opt/bin/diff3 to /opt/bin/diffutils-diff3
update-alternatives: Linking //opt/bin/sdiff to /opt/bin/diffutils-sdiff
Configuring e2fslibs
Configuring expat
Configuring file
Configuring findutils
update-alternatives: Linking //opt/bin/find to /opt/bin/findutils-find
update-alternatives: Linking //opt/bin/xargs to /opt/bin/findutils-xargs
Configuring flex
Configuring gawk
update-alternatives: Linking //opt/bin/awk to /opt/bin/gawk
Configuring groff
Configuring gzip
update-alternatives: Linking //opt/bin/gunzip to /opt/bin/gzip-gunzip
update-alternatives: Linking //opt/bin/gzip to /opt/bin/gzip-gzip
update-alternatives: Linking //opt/bin/zcat to /opt/bin/gzip-zcat
Configuring libtool
Configuring libxml2
Configuring m4
Configuring make
Configuring ncurses
update-alternatives: Linking //opt/bin/clear to /opt/bin/ncurses-clear
Configuring ncursesw
Configuring neon
Configuring openldap-libs
Configuring openssl
Configuring patch
update-alternatives: Linking //opt/bin/patch to /opt/bin/patch-patch
Configuring pkgconfig
Configuring psmisc
update-alternatives: Linking //opt/bin/killall to /opt/bin/psmisc-killall
update-alternatives: Linking //opt/bin/pidof to /opt/bin/psmisc-killall
Configuring python25
Configuring readline
Configuring rsync
Configuring sed
update-alternatives: Linking //opt/bin/sed to /opt/bin/gnu-sed
Configuring sqlite
Configuring svn
Configuring tcl
Configuring tcl
An error ocurred, return value: 1.
An error ocurred, return value: 1.
Line 467: Line 203:
Successfully terminated.
Successfully terminated.
Mnemosyne> ipkg install optware-devel
Mnemosyne> ipkg install optware-devel
...
Installing optware-devel (6.8-10) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/optware-devel_6.8-10_powerpc.ipk
Installing binutils (2.17-2) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/binutils_2.17-2_powerpc.ipk
Installing libc-dev (2.3.4-5) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/libc-dev_2.3.4-5_powerpc.ipk
Installing libnsl (2.3.4-4) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/libnsl_2.3.4-4_powerpc.ipk
Installing gcc (3.4.6-5) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/gcc_3.4.6-5_powerpc.ipk
Configuring binutils
update-alternatives: Linking //opt/bin/strings to /opt/bin/binutils-strings
Configuring gcc
Configuring libc-dev
Configuring libnsl
Configuring optware-devel
Configuring optware-devel
Successfully terminated.
Successfully terminated.
Line 730: Line 452:
Mnemosyne> backuppc status
Mnemosyne> backuppc status
Mnemosyne> ipkg install procps
Mnemosyne> ipkg install procps
Installing procps (3.2.8-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/procps_3.2.8-1_powerpc.ipk
Configuring procps
update-alternatives: Linking //opt/bin/free to /opt/bin/procps-free
update-alternatives: Linking //opt/bin/kill to /opt/bin/procps-kill
update-alternatives: Linking //opt/bin/ps to /opt/bin/procps-ps
update-alternatives: Linking //opt/bin/top to /opt/bin/procps-top
update-alternatives: Linking //opt/bin/uptime to /opt/bin/procps-uptime
update-alternatives: Linking //opt/bin/watch to /opt/bin/procps-watch
Successfully terminated.
Mnemosyne> vi config.pl
Mnemosyne> vi config.pl
Mnemosyne> rmdir pc
Mnemosyne> rmdir pc
Line 750: Line 462:
172.19.100.99 Mnemosyne
172.19.100.99 Mnemosyne
172.19.100.18 xbmcbuntu
172.19.100.18 xbmcbuntu
Mnemosyne> ping xbmcbuntu
PING xbmcbuntu (172.19.100.18): 56 data bytes
64 bytes from 172.19.100.18: seq=0 ttl=64 time=0.260 ms
Mnemosyne> curl -k -L http://cpanmin.us | perl - App::cpanminus
Mnemosyne> curl -k -L http://cpanmin.us | perl - App::cpanminus
Mnemosyne> cpanm File::Listing
Mnemosyne> cpanm File::Listing
Mnemosyne> ipkg install sudo
Mnemosyne> ipkg install sudo
Installing sudo (1.8.4.5-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/sudo_1.8.4.5-1_powerpc.ipk
Configuring sudo
Successfully terminated.
Mnemosyne> cd /etc/BackupPC/
Mnemosyne> cd /etc/BackupPC/
Mnemosyne> l
Mnemosyne> l

Revision as of 19:27, 26 April 2017

References

rsync

BackupPC links:

  • Doc:
http://backuppc.sourceforge.net/faq/BackupPC.html
http://backuppc.sourceforge.net/faq/
(for config cgi in lighttpd, including alias)
(basic config)
To enable user authentication
To force https
For setting up htpasswd
See also http://www.cyberciti.biz/tips/lighttpd-setup-a-password-protected-directory-directories.html
https://help.ubuntu.com/community/rsync#Rsync_Daemon
man rsyncd.conf
  • How to setup ssh+rsync securely:
http://backuppc.sourceforge.net/faq/ssh.html#how_can_client_access_as_root_be_avoided
http://www.systemajik.com/blog/setting-up-backuppc-on-ubuntu/
http://adsm.org/PRIVOXY-FORCE/lists/html/BackupPC-users/2012-02/msg00087.html
  • A look at rsync performance
http://lwn.net/Articles/400489/

Install and configuration

ntfs-3g backups

When backing up ntfs-3g shares, the option --links and --hard-links must be removed from RsyncArgs and RsyncRestoreArgs (see troubleshooting section below)

Since these options are common to a same client, one must create a separate backuppc client if a given physical host contains both ntfs-3g and non-ntfs-3g partitions. In that case, one client will match the name of the host, where others will have different names. For these clients, set the variable ClientNameAlias to the name of the physical host in the client configuration.

Install on Windows

Reference: http://www.systemajik.com/blog/setting-up-backuppc-on-windows/

Download and install cygwin-rsync from http://sourceforge.net/projects/backuppc/files/cygwin-rsyncd/3.0.9.0/
Edit c:\rsyncd\rsyncd.conf
Edit c:\rsyncd\rsyncd.secrets

Update the firewall rules
Test connection with telnet from backuppc server

Create exclusion list
 - Make sure we exclude locked file and junction
 - To get list of junctions:
   dir /aL /s > JunctionPoints.txt
Check backuppc charset setting


TODO:
Test changing (for all win pc, incl. pc-112-597, mandala, griffin, ...)

    '/Windows',

Into

    '+ /Windows/System32',
    '+ /Windows/System32/config',
    '+ /Windows/System32/config/**',
    '/Windows/**',

Install on Synology NAS

Mnemosyne> mkdir .ssh
Mnemosyne> cd .ssh
Mnemosyne> cat >authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCrpFEALD473OqeplM+qyBx+46KMquWK9utwNmvIy3iBatE4S2oFrHVjeQjSNNDK9qaVh2cHPNzzB0UkV9y174ZLn9qeatU032ieKgFfdTdgQCe88BM8eSiVxTkVWe/bawQwn0qqghPtQl7v6/Bof9H9pAGeWLPTfUFj/+CQTf2vevBZF7iuh/RhaokJ75EY29E2lMlAgfIsLv8OVt71LBJNzvXaZIvQgFn03et44UZuZpoqYlZZgAuVgJbHG88QRxcvciBl3H7adkphEkoGUn05JpG2G01Yw2orxpKuMAkCs6t+Z7LjzQhDe+vmKYC4ZUNr5APDwSUxovI3HWJ10Xv mip@home
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDzEuVrk/Od38pnN4x0mM5DwdqnBlQlDZucJGnmjdgUrAnpNXaCuI+dMZSJ/q4m+2yH2icc69jOKNyvHC0DAce9vStyHS61itzhIN2fETB6EoF11+4VzyOBPR2n/drfgBFo9rX7h8FO5em2KrfgysRsJpNW63HqmsMZWhNHjfAwvfpauks6TJVtUctnHu8n8zV5o6Z6CPHq7b+MuLfWa+RMQyE+dUpk9JM3CgrBdumEYMgNWzmTLrMd6VdzHocU3i/6XHWfo+ZzbaN3aKVx/dKiEZQJUTavyXTiVrzWQBE/g+MmMsyb+6MdKarR5Hpct1BLUhIOv7C1QZna1xIjuICr mip@work
Mnemosyne> mount
/dev/root on / type ext3 (rw,relatime,errors=continue,data=ordered)
/tmp on /tmp type tmpfs (0)
none on /dev/pts type devpts (gid=4,mode=620)
/sys on /sys type sysfs (0)
/proc/bus/usb on /proc/bus/usb type usbfs (0)
/dev/md2 on /volume1 type ext3 (usrquota,grpquota)
/volume1/@optware on /opt type bind (bind)
none on /proc/fs/nfsd type nfsd (0)
Mnemosyne> cd /opt
Mnemosyne> ipkg update
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/Packages.gz
Inflating http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/Packages.gz
Updated list of available packages in /opt/lib/ipkg/lists/cross
Successfully terminated.
Mnemosyne> df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/md0                  2.3G    449.7M      1.9G  19% /
/tmp                    251.7M    372.0K    251.3M   0% /tmp
/dev/md2                  5.4T      4.7T    643.6G  88% /volume1
/volume1/@optware         5.4T      4.7T    643.6G  88% /opt
# rsync already 3.0.9
Mnemosyne> which rsync
/usr/syno/bin/rsync
Mnemosyne> ipkg install perl par2cmdline tar
Mnemosyne> ipkg install perl-compress-zlib perl-archive-zip
Mnemosyne> which perl
/opt/bin/perl
Mnemosyne> ipkg install optware-devel
Installing optware-devel (6.8-10) to root...
...
Configuring tcl
An error ocurred, return value: 1.
Collected errors:
ERROR: The following packages conflict with wget-ssl:
	 wget
Mnemosyne> ipkg remove wget
Removing package wget from root...
Successfully terminated.
Mnemosyne> ipkg install optware-devel
Installing optware-devel (6.8-10) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/optware-devel_6.8-10_powerpc.ipk
file_move: ERROR: failed to rename /opt/ipkg-eY7pMk/optware-devel_6.8-10_powerpc.ipk to /opt/ipkg-eY7pMk/optware-devel_6.8-10_powerpc.ipk: No such file or directory
Nothing to be done
An error ocurred, return value: -1.
Collected errors:
Failed to download optware-devel. Perhaps you need to run 'ipkg update'?
Mnemosyne> ipkg update
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/Packages.gz
ipkg: /opt/ipkg-z1g4Tt/Packages.gz: No such file or directory
file_copy: ERROR: failed to copy /opt/ipkg-z1g4Tt/Packages.gz to /tmp/ipkg.WbgbbX/cross.gz
An error ocurred, return value: 1.
Mnemosyne> ipkg install wget-ssl
Installing wget-ssl (1.12-2) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/wget-ssl_1.12-2_powerpc.ipk
file_move: ERROR: failed to rename /opt/ipkg-5qgjat/wget-ssl_1.12-2_powerpc.ipk to /opt/ipkg-5qgjat/wget-ssl_1.12-2_powerpc.ipk: No such file or directory
Nothing to be done
An error ocurred, return value: -1.
Collected errors:
Failed to download wget-ssl. Perhaps you need to run 'ipkg update'?
Mnemosyne> ipkg install wget-ssl_1.12-2_powerpc.ipk 
Installing wget-ssl (1.12-2) to root...
Installing libidn (1.25-1) to root...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/libidn_1.25-1_powerpc.ipk
file_move: ERROR: failed to rename /opt/ipkg-9pn57X/libidn_1.25-1_powerpc.ipk to /opt/ipkg-9pn57X/libidn_1.25-1_powerpc.ipk: No such file or directory
Nothing to be done
An error ocurred, return value: -1.
Collected errors:
Failed to download libidn. Perhaps you need to run 'ipkg update'?
Mnemosyne> ipkg install libidn_1.25-1_powerpc.ipk 
Installing libidn (1.25-1) to root...
Configuring libidn
Successfully terminated.
Mnemosyne> Connection to mnemosyne closed.

beq06659@nxl67170ux /d/nxp/outlook
$ ssh root@mnemosyne
X11 forwarding request failed on channel 0


BusyBox v1.16.1 (2014-09-04 13:59:18 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

Mnemosyne> cd /opt/bin
Mnemosyne> rm wget
Mnemosyne> cd
Mnemosyne> ipkg remove wget
No packages removed.
Nothing to be done
Successfully terminated.
Mnemosyne> ipkg remove wget-ssl
No packages removed.
Nothing to be done
Successfully terminated.
Mnemosyne> ipkg install wget-ssl_1.12-2_powerpc.ipk 
Installing wget-ssl (1.12-2) to root...
Configuring wget-ssl
Successfully terminated.
Mnemosyne> ipkg install libidn_1.25-1_powerpc.ipk 
Installing libidn (1.25-1) to root...
Configuring libidn
Successfully terminated.
Mnemosyne> Connection to mnemosyne closed.

beq06659@nxl67170ux /d/nxp/outlook
$ ssh root@mnemosyne
X11 forwarding request failed on channel 0


BusyBox v1.16.1 (2014-09-04 13:59:18 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

Mnemosyne> which wget
/opt/bin/wget
Mnemosyne> ipkg update
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/Packages.gz
Inflating http://ipkg.nslu2-linux.org/feeds/optware/syno-e500/cross/unstable/Packages.gz
Updated list of available packages in /opt/lib/ipkg/lists/cross
Successfully terminated.
Mnemosyne> ipkg upgrade
Nothing to be done
Successfully terminated.
Mnemosyne> ipkg install optware-devel
...
Configuring optware-devel
Successfully terminated.
Mnemosyne> rm libidn_1.25-1_powerpc.ipk 
Mnemosyne> rm wget-ssl_1.12-2_powerpc.ipk 
Mnemosyne> rm Packages.gz 

# To bypass build error:
powerpc-linux-gnuspe-ar cr libzlib.a adler32.o compress.o crc32.o deflate.o inffast.o inflate.o inftrees.o trees.o zutil.o
make[1]: powerpc-linux-gnuspe-ar: Command not found
make[1]: *** [libzlib.a] Error 127
make[1]: Leaving directory `/root/BackupPC-XS-0.30/zlib'
make: *** [zlib/libzlib.a] Error 2
Mnemosyne> cd /opt/bin
Mnemosyne> for f in addr2line ar as c++ c++filt cpp g++ gcc gccbug gcov ld nm objcopy objdump ranlib readelf size strings strip; do if [ -e /opt/bin/$f ]; then F=powerpc-linux-gnuspe-$f; if [ -e /opt/bin/$F ]; then echo $F exists; else echo Creating symlink $F to $f; ln -sf $f /opt/bin/$F; fi ; else echo $f does not exists; fi; done
Creating symlink powerpc-linux-gnuspe-addr2line to addr2line
powerpc-linux-gnuspe-c++ exists
Creating symlink powerpc-linux-gnuspe-c++filt to c++filt
Creating symlink powerpc-linux-gnuspe-cpp to cpp
powerpc-linux-gnuspe-g++ exists
powerpc-linux-gnuspe-gcc exists
Creating symlink powerpc-linux-gnuspe-gcov to gcov
Creating symlink powerpc-linux-gnuspe-ld to ld
Creating symlink powerpc-linux-gnuspe-nm to nm
Creating symlink powerpc-linux-gnuspe-objcopy to objcopy
Creating symlink powerpc-linux-gnuspe-objdump to objdump
Creating symlink powerpc-linux-gnuspe-ranlib to ranlib
Creating symlink powerpc-linux-gnuspe-readelf to readelf
Creating symlink powerpc-linux-gnuspe-size to size
Creating symlink powerpc-linux-gnuspe-strings to strings
Creating symlink powerpc-linux-gnuspe-strip to strip



Mnemosyne> cd
Mnemosyne> wget http://sourceforge.net/projects/backuppc/files/backuppc-beta/4.0.0alpha3/BackupPC-XS-0.30.tar.gz/download
Mnemosyne> wget http://sourceforge.net/projects/backuppc/files/backuppc-beta/4.0.0alpha3/rsync-bpc-3.0.9.3.tar.gz/download
Mnemosyne> wget http://sourceforge.net/projects/backuppc/files/backuppc-beta/4.0.0alpha3/BackupPC-4.0.0alpha3.tar.gz/download
Mnemosyne> tar xvzf BackupPC-XS-0.30.tar.gz 
Mnemosyne> cd BackupPC-XS-0.30/
Mnemosyne> perl Makefile.PL 
Mnemosyne> make 
Mnemosyne> make test
Mnemosyne> make install

Mnemosyne> cd
Mnemosyne> tar -xvzf rsync-bpc-3.0.9.3.tar.gz 
Mnemosyne> cd rsync-bpc-3.0.9.3/
# Should have done Mnemosyne> ./configure.sh --prefix=/opt
Mnemosyne> ./configure.sh
Mnemosyne> make
Mnemosyne> make install

Mnemosyne> ipkg install rrdtool
Mnemosyne> cat /etc/passwd 
...
backuppc:x:1033:100:User for backuppc:/var/services/homes/backuppc:/sbin/nologin
Mnemosyne> mkdir /opt/var/lib/backuppc
Mnemosyne> chown backuppc /opt/var/lib/backuppc
Mnemosyne> mkdir /usr/syno/synoman/backuppc

Mnemosyne> cd
Mnemosyne> tar -xvzf BackupPC-4.0.0alpha3.tar.gz 
Mnemosyne> cd BackupPC-4.0.0alpha3/
Mnemosyne> ./configure.pl 

Is this a new installation or upgrade for BackupPC?  If this is
an upgrade please tell me the full path of the existing BackupPC
configuration file (eg: /etc/BackupPC/config.pl).  Otherwise, just
hit return.

--> Full path to existing main config.pl []? 

I found the following locations for these programs:

    bzip2        => /opt/bin/bzip2
    cat          => /opt/bin/cat
    df           => /opt/bin/df
    gtar/tar     => /opt/bin/tar
    gzip         => /opt/bin/gzip
    hostname     => /bin/hostname
    nmblookup    => /usr/syno/bin/nmblookup
    par2         => /opt/bin/par2
    perl         => /opt/bin/perl
    ping         => /bin/ping
    rrdtool      => /opt/bin/rrdtool
    rsync        => /opt/bin/rsync
    rsync_bpc    => /usr/local/bin/rsync_bpc
    sendmail     => 
    smbclient    => /usr/syno/bin/smbclient
    split        => /opt/bin/split
    ssh/ssh2     => /usr/syno/bin/ssh

--> Are these paths correct? [y]? 

Please tell me the hostname of the machine that BackupPC will run on.

--> BackupPC will run on host [Mnemosyne]? 

BackupPC should run as a dedicated user with limited privileges.  You
need to create a user.  This user will need read/write permission on
the main data directory and read/execute permission on the install
directory (these directories will be setup shortly).

The primary group for this user should also be chosen carefully.
The data directories and files will have group read permission,
so group members can access backup files.

--> BackupPC should run as user [backuppc]? 

Please specify an install directory for BackupPC.  This is where the
BackupPC scripts, library and documentation will be installed.

--> Install directory (full path) [/usr/local/BackupPC]? /opt/local/backuppc

Please specify a data directory for BackupPC.  This is where all the
PC backup data is stored.  This file system needs to be big enough to
accommodate all the PCs you expect to backup (eg: at least several GB
per machine).

--> Data directory (full path) [/data/BackupPC]? /opt/var/lib/backuppc

BackupPC has SCGI and CGI perl interfaces that run under Apache.  You need
to pick which one to run.

For SCGI, Apache uses the scgi_mod module to communicate with BackupPC_Admin_SCGI,
which handles the requests.  This allows Apache to run as a different user as
backuppc.  To use SCGI you need to set SCGIServerPort to any spare
non-privileged TCP port number.  A negative value disables SCGI.

Important security warning!!  The SCGIServerPort must not be accessible by
anyone untrusted.  That means you can't allow untrusted users access to the
BackupPC server, and you should block the SCGIServerPort TCP port from
network access.

The traditional alternative is to use CGI.  In this case, an executable needs
to be installed Apache's cgi-bin directory.  This executable needs to run as
set-uid backuppc, or it can be run under mod_perl with Apache
running as user backuppc.

--> SCGI port (-1 to disable) [-1]? 
--> CGI bin directory (full path, or empty for no CGI) []? /usr/syno/synoman/backuppc

BackupPC's CGI and SCGI script need to display various PNG/GIF
images that should be stored where Apache can serve them.  They
should be placed somewhere under Apache's DocumentRoot.  BackupPC
also needs to know the URL to access these images.  Example:

    Apache image directory:  /var/www/htdocs/BackupPC
    URL for image directory: /BackupPC

The URL for the image directory should start with a slash.

--> Apache image directory (full path, or empty for no S/CGI) []? /usr/syno/synoman/backuppc
--> URL for image directory (omit http://host; starts with '/', or empty for no S/CGI) []? /backuppc

Ok, we're about to:

  - install the binaries, lib and docs in /opt/local/backuppc,
  - create the data directory /opt/var/lib/backuppc,
  - create/update the config.pl file /etc/BackupPC/config.pl,
  - optionally install the cgi-bin interface.

--> Do you want to continue? [y]? 
Created /opt/local/backuppc/bin
Created /opt/local/backuppc/share/doc/BackupPC
Created /opt/local/backuppc/lib/BackupPC/CGI
Created /opt/local/backuppc/lib/BackupPC/Config
Created /opt/local/backuppc/lib/BackupPC/Lang
Created /opt/local/backuppc/lib/BackupPC/Storage
Created /opt/local/backuppc/lib/BackupPC/Xfer
Created /opt/local/backuppc/lib/BackupPC/Zip
Created /opt/local/backuppc/lib/Net/FTP
Created /opt/var/lib/backuppc
Created /opt/var/lib/backuppc/pool
Created /opt/var/lib/backuppc/cpool
Created /opt/var/lib/backuppc/pc
Created /etc/BackupPC
Created /var/log/BackupPC
Created /var/run/BackupPC
Installing binaries in /opt/local/backuppc/bin
Installing library in /opt/local/backuppc/lib
Installing images in /usr/syno/synoman/backuppc
Making init.d scripts
Making Apache configuration file for suid-perl
Installing docs in /opt/local/backuppc/share/doc/BackupPC
Installing config.pl and hosts in /etc/BackupPC
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: seq=0 ttl=64 time=0.087 ms

--- localhost ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.087/0.087/0.087 ms
Installing cgi script BackupPC_Admin in /usr/syno/synoman/backuppc

Ok, it looks like we are finished.  There are several more things you
will need to do:

  - Browse through the config file, /etc/BackupPC/config.pl,
    and make sure all the settings are correct.  In particular,
    you will need to set $Conf{CgiAdminUsers} so you have
    administration privileges in the CGI interface.

  - Edit the list of hosts to backup in /etc/BackupPC/hosts.

  - Read the documentation in /opt/local/backuppc/doc/BackupPC.html.
    Please pay special attention to the security section.

  - Verify that the CGI script BackupPC_Admin runs correctly.  You might
    need to change the permissions or group ownership of BackupPC_Admin.
    If this is an upgrade and you are using mod_perl, you will need
    to restart Apache.  Otherwise it will have stale code.

  - BackupPC should be ready to start.  Don't forget to run it
    as user backuppc!  The installation also contains an
    init.d/backuppc script that can be copied to /etc/init.d
    so that BackupPC can auto-start on boot.  This will also enable
    administrative users to start the server from the CGI interface.
    See init.d/README.

Enjoy!
Mnemosyne> cd /usr/syno/synoman/backuppc
Mnemosyne> mv BackupPC_Admin real-BackupPC_Admin.pl
Mnemosyne> chmod 550 real-BackupPC_Admin.pl 
Mnemosyne> cat wrapper.c 
#include <unistd.h>
#define REAL_PATH "/usr/syno/synoman/backuppc/real-BackupPC_Admin.pl"
int main(ac, av)
char **av;
{
	execv(REAL_PATH, av);
	return 0;
}
      
Mnemosyne> gcc -o BackupPC_Admin wrapper.c
Mnemosyne> chown backuppc BackupPC_Admin 
Mnemosyne> chmod 4550 BackupPC_Admin 
Mnemosyne> chown backuppc:users BackupPC_Admin 
Mnemosyne> mv BackupPC_Admin BackupPC_Admin.cgi
Mnemosyne> chmod 4550 BackupPC_Admin.cgi 
-r-sr-x--- 1 backuppc users 8.7K Nov 10 16:20 BackupPC_Admin.cgi
-r-xr-x--- 1 backuppc users 4.0K Nov 10 16:16 real-BackupPC_Admin.pl
-rwxr-xr-x 1 root     root   163 Nov 10 16:19 wrapper.c

# import backuppc start up script to /opt/sbin/backuppc
# backuppc requires package procps

Mnemosyne> backuppc status
Mnemosyne> ipkg install procps 
Mnemosyne> vi config.pl
Mnemosyne> rmdir pc
Mnemosyne> ln -sf . pc
Mnemosyne> backuppc start
Mnemosyne> cd /etc
Mnemosyne> vi hosts
Mnemosyne> cat hosts
127.0.0.1	localhost
172.19.100.99	Mnemosyne
172.19.100.18	xbmcbuntu
Mnemosyne> curl -k -L http://cpanmin.us | perl -  App::cpanminus
Mnemosyne> cpanm File::Listing
Mnemosyne> ipkg install sudo
Mnemosyne> cd /etc/BackupPC/
Mnemosyne> l
total 228K
-rw-r----- 1 backuppc root     0 Nov 10 18:23 LOCK
-rw-r----- 1 backuppc users  82K Nov 10 17:35 config.pl
-rw-r----- 1 root     root   82K Nov 10 17:32 config.pl.orig
-rwxr-xr-x 1 root     root   838 Nov 10 17:39 griffin.pl
-rw-r--r-- 1 backuppc users 2.3K Nov 10 17:54 hosts
-rwxr-xr-x 1 root     root  3.2K Nov 10 17:39 mandala.pl
-rwxr-xr-x 1 root     root   821 Nov 10 17:39 nxl67170ux.pl
lrwxrwxrwx 1 root     root     1 Nov 10 17:50 pc -> .
-rwxr-xr-x 1 root     root   811 Nov 10 17:39 xbmcbuntu.pl
Mnemosyne> vi config.pl
# Edit PingCmd line to use 'sudo'
Mnemosyne> cd /etc/sudoers.d
Mnemosyne> vi backuppc
Mnemosyne> chmod 440 backuppc 
Mnemosyne> backuppc start
backuppc started
Mnemosyne> 



################################################################""
TODO:
- Delete backuppc db on mnemosyne

Install on Lacie-Cloudbox

This is for BackupPC 4.0 Alpha 3:

#################################
Backuppc 4.0

cd /opt/bin
for f in addr2line ar as c++ c++filt cpp g++ gcc gccbug gcov ld nm objcopy objdump ranlib readelf size strings strip; do if [ -e /opt/bin/$f ]; then F=arm-none-linux-gnueabi-$f; if [ -e /opt/bin/$F ]; then echo $F exists; else echo Creating symlink $F to $f; ln -sf $f /opt/bin/$F; fi ; else echo $f does not exists; fi; done


    ## >>>>>>>>>>>> ADDED FOR BACKUPPC
    cgi.assign += ( "/opt/local/backuppc/cgi-bin/index.cgi" => "" )
    #alias.url += ("/backuppc/index.cgi" => "/opt/local/backuppc/cgi-bin/index.cgi")
    alias.url += ("/backuppc" => "/opt/local/backuppc/cgi-bin" )
    #alias.url += ("/BackupPC_Admin" => "/shares/backuppc/www/cgi-bin/BackupPC_Admin")
    auth.debug = 2
    auth.backend = "htpasswd"
    auth.backend.htpasswd.userfile = "/etc/lighttpd/lighttpd-htpasswd.user"
    auth.require = ( "/backuppc" =>
	    ( "method" => "basic", "realm" => "Password protected area", "require" => "user=backuppc" )
    )

    index-file.names            = (
      "index.html", "index.php", "index.cgi"
    )

    # Force HTTPS
    $HTTP["scheme"] == "http" {
	    # capture vhost name with regex conditiona -> %0 in redirect pattern
	    # must be the most inner block to the redirect rule
	    $HTTP["host"] =~ ".*" {
		    url.redirect = (".*" => "https://%0$0")
	    }
    }



########################################################################################################
########################################################################################################
########################################################################################################
########################################################################################################
########################################################################################################
########################################################################################################
########################################################################################################
########################################################################################################
########################################################################################################
########################################################################################################
########################################################################################################

beq06659@nxl67170ux /data/home/beq06659/.ssh (master)
$ ssh lacie
[root@LaCie-CloudBox ~]# cd /opt
[root@LaCie-CloudBox opt]# cd etc
[root@LaCie-CloudBox etc]# l
[root@LaCie-CloudBox etc]# cd backuppc/
[root@LaCie-CloudBox backuppc]# l
[root@LaCie-CloudBox backuppc]# cd ..
[root@LaCie-CloudBox etc]# l
[root@LaCie-CloudBox etc]# mv backuppc backuppc3
[root@LaCie-CloudBox etc]# cd ..
[root@LaCie-CloudBox opt]# l
[root@LaCie-CloudBox opt]# cd local
[root@LaCie-CloudBox local]# l
[root@LaCie-CloudBox local]# rm -rf backuppc 
[root@LaCie-CloudBox local]# cd /opt
[root@LaCie-CloudBox opt]# cd var
[root@LaCie-CloudBox var]# l
[root@LaCie-CloudBox var]# cd log
[root@LaCie-CloudBox log]# l
[root@LaCie-CloudBox log]# cd backuppc/
[root@LaCie-CloudBox backuppc]# l
[root@LaCie-CloudBox backuppc]# cd ..
[root@LaCie-CloudBox log]# l
[root@LaCie-CloudBox log]# mv backuppc backuppc3
[root@LaCie-CloudBox log]# l
[root@LaCie-CloudBox log]# cd ..
[root@LaCie-CloudBox var]# cd
[root@LaCie-CloudBox ~]# l
[root@LaCie-CloudBox ~]# mkdir build
[root@LaCie-CloudBox ~]# cd build
[root@LaCie-CloudBox build]# l
[root@LaCie-CloudBox build]# tar
[root@LaCie-CloudBox build]# which tar
[root@LaCie-CloudBox build]# l
[root@LaCie-CloudBox build]# l
[root@LaCie-CloudBox build]# l
total 1.6M
-rw-r--r-- 1 root root 571K Dec  2  2013 BackupPC-4.0.0alpha3.tar.gz
-rw-r--r-- 1 root root 275K Dec  2  2013 BackupPC-XS-0.30.tar.gz
-rw-r--r-- 1 root root 757K Dec  2  2013 rsync-bpc-3.0.9.3.tar.gz
[root@LaCie-CloudBox build]# tar -xvzf BackupPC-4.0.0alpha3.tar.gz 
[root@LaCie-CloudBox build]# ls
[root@LaCie-CloudBox build]# tar -xvzf BackupPC-XS-0.30.tar.gz 
[root@LaCie-CloudBox build]# tar -xvzf rsync-bpc-3.0.9.3.tar.gz 
[root@LaCie-CloudBox build]# ls
[root@LaCie-CloudBox build]# cd BackupPC-XS-0.30
[root@LaCie-CloudBox BackupPC-XS-0.30]# perl Makefile.PL 
[root@LaCie-CloudBox BackupPC-XS-0.30]# make
[1]: arm-none-linux-gnueabi-ar: Command not found
make[1]: *** [libzlib.a] Error 127
make[1]: Leaving directory `/root/build/BackupPC-XS-0.30/zlib'
make: *** [zlib/libzlib.a] Error 2
[root@LaCie-CloudBox BackupPC-XS-0.30]# cd /opt/bin
[root@LaCie-CloudBox bin]# l
[root@LaCie-CloudBox bin]# ls ar
ar
[root@LaCie-CloudBox bin]# ipkg install rddtool
Nothing to be done
An error ocurred, return value: 4.
Collected errors:
Cannot find package rddtool.
Check the spelling or perhaps run 'ipkg update'
[root@LaCie-CloudBox bin]# cd /opt
[root@LaCie-CloudBox opt]# cd bin
[root@LaCie-CloudBox bin]# ls
[root@LaCie-CloudBox bin]# l gcc*
[root@LaCie-CloudBox bin]# cd
[root@LaCie-CloudBox ~]# l
[root@LaCie-CloudBox ~]# cd build
[root@LaCie-CloudBox build]# l
[root@LaCie-CloudBox build]# cd BackupPC-XS-0.30
[root@LaCie-CloudBox BackupPC-XS-0.30]# l
[root@LaCie-CloudBox BackupPC-XS-0.30]# make                              
[root@LaCie-CloudBox bin]# l
[root@LaCie-CloudBox bin]# ls
[root@LaCie-CloudBox bin]# ls powerpc*
[root@LaCie-CloudBox bin]# rm powerpc*
[root@LaCie-CloudBox bin]# ls arm*       
[root@LaCie-CloudBox bin]# cd
[root@LaCie-CloudBox ~]# l     
[root@LaCie-CloudBox ~]# cd buil
[root@LaCie-CloudBox ~]# cd build
[root@LaCie-CloudBox build]# l
[root@LaCie-CloudBox build]# cd BackupPC-XS-0.30
[root@LaCie-CloudBox BackupPC-XS-0.30]# l
[root@LaCie-CloudBox BackupPC-XS-0.30]# make
[root@LaCie-CloudBox BackupPC-XS-0.30]# make test
[root@LaCie-CloudBox BackupPC-XS-0.30]# make install
[root@LaCie-CloudBox BackupPC-XS-0.30]# cd ..
[root@LaCie-CloudBox build]# l
[root@LaCie-CloudBox build]# cd rsync-bpc-3.0.9.3
[root@LaCie-CloudBox rsync-bpc-3.0.9.3]# l
[root@LaCie-CloudBox rsync-bpc-3.0.9.3]# ./configure
[root@LaCie-CloudBox rsync-bpc-3.0.9.3]# ./configure.sh --prefix=/opt
[root@LaCie-CloudBox rsync-bpc-3.0.9.3]# make
[root@LaCie-CloudBox rsync-bpc-3.0.9.3]# make install
[root@LaCie-CloudBox rsync-bpc-3.0.9.3]# which rsync_bpc
[root@LaCie-CloudBox rsync-bpc-3.0.9.3]# cd ..
[root@LaCie-CloudBox build]# history
  973  wget http://sourceforge.net/projects/backuppc/files/backuppc-beta/4.0.0alpha3/BackupPC-XS-0.30.tar.gz/d
  974  wget http://sourceforge.net/projects/backuppc/files/backuppc-beta/4.0.0alpha3/BackupPC-XS-0.30.tar.gz/download
  975  wget http://sourceforge.net/projects/backuppc/files/backuppc-beta/4.0.0alpha3/rsync-bpc-3.0.9.3.tar.gz/download
  976  Mnemosyne> wget http://sourceforge.net/projects/backuppc/files/backuppc-beta/4.0.0alpha3/BackupPC-4.0.0alpha3.tar.gz/download
  977  wget http://sourceforge.net/projects/backuppc/files/backuppc-beta/4.0.0alpha3/BackupPC-4.0.0alpha3.tar.gz/download
  978  rm rsync-bpc-3.0.9.3.tar.gz.1 
  979  rm wget
  980  tar -xvzf BackupPC-4.0.0alpha3.tar.gz 
  981  tar -xvzf BackupPC-XS-0.30.tar.gz 
  982  tar -xvzf rsync-bpc-3.0.9.3.tar.gz 
  983  perl Makefile.PL 
  984  ls ar
  985  ipkg install rddtool
  986  cd /opt
  987  cd bin
  988  l gcc*
  989  for f in addr2line ar as c++ c++filt cpp g++ gcc gccbug gcov ld nm objcopy objdump ranlib readelf size strings strip; do if [ -e /opt/bin/$f ]; then F=powerpc-linux-gnuspe-$f; if [ -e /opt/bin/$F ]; then echo $F exists; else echo Creating symlink $F to $f; ln -sf $f /opt/bin/$F; fi ; else echo $f does not exists; fi; done
  990  cd /opt/bin
  991  ls
  992  ls powerpc*
  993  rm powerpc*
  994  ls arm*
  995  for f in addr2line ar as c++ c++filt cpp g++ gcc gccbug gcov ld nm objcopy objdump ranlib readelf size strings strip; do if [ -e /opt/bin/$f ]; then F=arm-none-linux-gnueabi-$f; if [ -e /opt/bin/$F ]; then echo $F exists; else echo Creating symlink $F to $f; ln -sf $f /opt/bin/$F; fi ; else echo $f does not exists; fi; done
  996  cd
  997  cd buil
  998  cd build
  999  cd BackupPC-XS-0.30
 1000  make test
 1001  cd rsync-bpc-3.0.9.3
 1002  l
 1003  ./configure.sh --prefix=/opt
 1004  make
 1005  make install
 1006  which rsync_bpc
 1007  cd ..
 1008  history
[root@LaCie-CloudBox build]# cd /opt
[root@LaCie-CloudBox opt]# cd var
[root@LaCie-CloudBox var]# cd lib
[root@LaCie-CloudBox var]# l
[root@LaCie-CloudBox var]# cd run
[root@LaCie-CloudBox run]# l
[root@LaCie-CloudBox run]# cd ..
[root@LaCie-CloudBox var]# l
[root@LaCie-CloudBox var]# cd
[root@LaCie-CloudBox ~]# cd build
[root@LaCie-CloudBox build]# l
[root@LaCie-CloudBox build]# cd BackupPC-4.0.0alpha3
[root@LaCie-CloudBox BackupPC-4.0.0alpha3]# mkdir -p /opt/var/lib/backuppc
[root@LaCie-CloudBox BackupPC-4.0.0alpha3]# l /opt/var/lib/backuppc
[root@LaCie-CloudBox BackupPC-4.0.0alpha3]# chown backuppc /opt/var/lib/backuppc
[root@LaCie-CloudBox BackupPC-4.0.0alpha3]# l /opt/var/lib         
[root@LaCie-CloudBox BackupPC-4.0.0alpha3]# l
[root@LaCie-CloudBox BackupPC-4.0.0alpha3]# ./
[root@LaCie-CloudBox BackupPC-4.0.0alpha3]# ./conf
[root@LaCie-CloudBox BackupPC-4.0.0alpha3]# ./conf
[root@LaCie-CloudBox BackupPC-4.0.0alpha3]# ./conf
[root@LaCie-CloudBox BackupPC-4.0.0alpha3]# ./configure.pl 
[root@LaCie-CloudBox BackupPC-4.0.0alpha3]# ipkg install rrdtool
[root@LaCie-CloudBox BackupPC-4.0.0alpha3]# ./configure.pl 
[root@LaCie-CloudBox BackupPC-4.0.0alpha3]# ./configure.pl 

Is this a new installation or upgrade for BackupPC?  If this is
an upgrade please tell me the full path of the existing BackupPC
configuration file (eg: /etc/BackupPC/config.pl).  Otherwise, just
hit return.

--> Full path to existing main config.pl []? 

I found the following locations for these programs:

    bzip2        => /opt/bin/bzip2
    cat          => /opt/bin/cat
    df           => /opt/bin/df
    gtar/tar     => /opt/bin/tar
    gzip         => /opt/bin/gzip
    hostname     => /bin/hostname
    nmblookup    => /usr/bin/nmblookup
    par2         => /opt/bin/par2
    perl         => /opt/bin/perl
    ping         => /bin/ping
    rrdtool      => /opt/bin/rrdtool
    rsync        => /opt/bin/rsync
    rsync_bpc    => /opt/bin/rsync_bpc
    sendmail     => 
    smbclient    => 
    split        => /opt/bin/split
    ssh/ssh2     => /usr/bin/ssh

--> Are these paths correct? [y]? 

Please tell me the hostname of the machine that BackupPC will run on.

--> BackupPC will run on host [LaCie-CloudBox]? 

BackupPC should run as a dedicated user with limited privileges.  You
need to create a user.  This user will need read/write permission on
the main data directory and read/execute permission on the install
directory (these directories will be setup shortly).

The primary group for this user should also be chosen carefully.
The data directories and files will have group read permission,
so group members can access backup files.

--> BackupPC should run as user [backuppc]? 

Please specify an install directory for BackupPC.  This is where the
BackupPC scripts, library and documentation will be installed.

--> Install directory (full path) [/usr/local/BackupPC]? /opt/local/backuppc

Please specify a data directory for BackupPC.  This is where all the
PC backup data is stored.  This file system needs to be big enough to
accommodate all the PCs you expect to backup (eg: at least several GB
per machine).

--> Data directory (full path) [/data/BackupPC]? /opt/var/lib/backuppc

BackupPC has SCGI and CGI perl interfaces that run under Apache.  You need
to pick which one to run.

For SCGI, Apache uses the scgi_mod module to communicate with BackupPC_Admin_SCGI,
which handles the requests.  This allows Apache to run as a different user as
backuppc.  To use SCGI you need to set SCGIServerPort to any spare
non-privileged TCP port number.  A negative value disables SCGI.

Important security warning!!  The SCGIServerPort must not be accessible by
anyone untrusted.  That means you can't allow untrusted users access to the
BackupPC server, and you should block the SCGIServerPort TCP port from
network access.

The traditional alternative is to use CGI.  In this case, an executable needs
to be installed Apache's cgi-bin directory.  This executable needs to run as
set-uid backuppc, or it can be run under mod_perl with Apache
running as user backuppc.

--> SCGI port (-1 to disable) [-1]? 
--> CGI bin directory (full path, or empty for no CGI) []? /opt/lib/backuppc

BackupPC's CGI and SCGI script need to display various PNG/GIF
images that should be stored where Apache can serve them.  They
should be placed somewhere under Apache's DocumentRoot.  BackupPC
also needs to know the URL to access these images.  Example:

    Apache image directory:  /var/www/htdocs/BackupPC
    URL for image directory: /BackupPC

The URL for the image directory should start with a slash.

--> Apache image directory (full path, or empty for no S/CGI) []? /opt/local/backuppc/cgi-bin
--> URL for image directory (omit http://host; starts with '/', or empty for no S/CGI) []? /backuppc

Ok, we're about to:

  - install the binaries, lib and docs in /opt/local/backuppc,
  - create the data directory /opt/var/lib/backuppc,
  - create/update the config.pl file /etc/BackupPC/config.pl,
  - optionally install the cgi-bin interface.

--> Do you want to continue? [y]? 
Created /opt/local/backuppc/bin
Created /opt/local/backuppc/share/doc/BackupPC
Created /opt/local/backuppc/lib/BackupPC/CGI
Created /opt/local/backuppc/lib/BackupPC/Config
Created /opt/local/backuppc/lib/BackupPC/Lang
Created /opt/local/backuppc/lib/BackupPC/Storage
Created /opt/local/backuppc/lib/BackupPC/Xfer
Created /opt/local/backuppc/lib/BackupPC/Zip
Created /opt/local/backuppc/lib/Net/FTP
Created /opt/local/backuppc/cgi-bin
Created /opt/var/lib/backuppc
Created /opt/var/lib/backuppc/pool
Created /opt/var/lib/backuppc/cpool
Created /opt/var/lib/backuppc/pc
Created /etc/BackupPC
Created /var/log/BackupPC
Created /var/run/BackupPC
Installing binaries in /opt/local/backuppc/bin
Installing library in /opt/local/backuppc/lib
Installing images in /opt/local/backuppc/cgi-bin
Making init.d scripts
Making Apache configuration file for suid-perl
Installing docs in /opt/local/backuppc/share/doc/BackupPC
Installing config.pl and hosts in /etc/BackupPC
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: seq=0 ttl=64 time=0.325 ms

--- localhost ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.325/0.325/0.325 ms
Installing cgi script BackupPC_Admin in /opt/lib/backuppc

Ok, it looks like we are finished.  There are several more things you
will need to do:

  - Browse through the config file, /etc/BackupPC/config.pl,
    and make sure all the settings are correct.  In particular,
    you will need to set $Conf{CgiAdminUsers} so you have
    administration privileges in the CGI interface.

  - Edit the list of hosts to backup in /etc/BackupPC/hosts.

  - Read the documentation in /opt/local/backuppc/doc/BackupPC.html.
    Please pay special attention to the security section.

  - Verify that the CGI script BackupPC_Admin runs correctly.  You might
    need to change the permissions or group ownership of BackupPC_Admin.
    If this is an upgrade and you are using mod_perl, you will need
    to restart Apache.  Otherwise it will have stale code.

  - BackupPC should be ready to start.  Don't forget to run it
    as user backuppc!  The installation also contains an
    init.d/backuppc script that can be copied to /etc/init.d
    so that BackupPC can auto-start on boot.  This will also enable
    administrative users to start the server from the CGI interface.
    See init.d/README.

Enjoy!
[root@LaCie-CloudBox BackupPC-4.0.0alpha3]# cd /etc
[root@LaCie-CloudBox etc]# l
[root@LaCie-CloudBox etc]# ls
[root@LaCie-CloudBox etc]# cd BackupPC/
[root@LaCie-CloudBox BackupPC]# l
[root@LaCie-CloudBox BackupPC]# cd /opt/local
[root@LaCie-CloudBox local]# l
[root@LaCie-CloudBox local]# cd backuppc/
[root@LaCie-CloudBox backuppc]# l
[root@LaCie-CloudBox backuppc]# cd bin
[root@LaCie-CloudBox bin]# ls
[root@LaCie-CloudBox bin]# cd ../cgi-bin/
[root@LaCie-CloudBox cgi-bin]# l
[root@LaCie-CloudBox cgi-bin]# ls
[root@LaCie-CloudBox cgi-bin]# cd /var
[root@LaCie-CloudBox var]# cd log
[root@LaCie-CloudBox log]# l
[root@LaCie-CloudBox log]# cd
[root@LaCie-CloudBox ~]# cd /etc
[root@LaCie-CloudBox etc]# rm -rf BackupPC/
[root@LaCie-CloudBox etc]# cd /var/log 
[root@LaCie-CloudBox log]# l
[root@LaCie-CloudBox log]# rm -rf BackupPC/
[root@LaCie-CloudBox log]# ls
[root@LaCie-CloudBox log]# cd /var/run
[root@LaCie-CloudBox run]# l
[root@LaCie-CloudBox run]# ls
[root@LaCie-CloudBox run]# rm -rf BackupPC/
[root@LaCie-CloudBox run]# cd /opt
[root@LaCie-CloudBox opt]# cd local
[root@LaCie-CloudBox local]# l
[root@LaCie-CloudBox local]# rm -rf backuppc/
[root@LaCie-CloudBox local]# cd ../lib
[root@LaCie-CloudBox lib]# l
[root@LaCie-CloudBox lib]# ls
[root@LaCie-CloudBox lib]# cd backuppc/
[root@LaCie-CloudBox backuppc]# m
[root@LaCie-CloudBox backuppc]# l
[root@LaCie-CloudBox backuppc]# cd ..
[root@LaCie-CloudBox lib]# rm -rf backuppc 
[root@LaCie-CloudBox lib]# cd
[root@LaCie-CloudBox ~]# cd biuld
[root@LaCie-CloudBox ~]# cd build
[root@LaCie-CloudBox build]# cd BackupPC-4.0.0alpha3
[root@LaCie-CloudBox BackupPC-4.0.0alpha3]# ./conf
[root@LaCie-CloudBox BackupPC-4.0.0alpha3]# cd /opt
[root@LaCie-CloudBox opt]# cd etc
[root@LaCie-CloudBox etc]# cd backuppc
[root@LaCie-CloudBox backuppc]# l
[root@LaCie-CloudBox backuppc]# ln -sf . pc
[root@LaCie-CloudBox backuppc]# cd /opt/var/log/          
[root@LaCie-CloudBox log]# l
[root@LaCie-CloudBox log]# cd ..
[root@LaCie-CloudBox var]# ls
[root@LaCie-CloudBox var]# cd backuppc/
[root@LaCie-CloudBox backuppc]# l
[root@LaCie-CloudBox backuppc]# cd ..
[root@LaCie-CloudBox var]# history
  978  for f in addr2line ar as c++ c++filt cpp g++ gcc gccbug gcov ld nm objcopy objdump ranlib readelf size strings strip; do if [ -e /opt/bin/$f ]; then F=arm-none-linux-gnueabi-$f; if [ -e /opt/bin/$F ]; then echo $F exists; else echo Creating symlink $F to $f; ln -sf $f /opt/bin/$F; fi ; else echo $f does not exists; fi; done
  979  cd buil
  980  cd BackupPC-XS-0.30
  981  make test
  982  cd rsync-bpc-3.0.9.3
  983  ./configure.sh --prefix=/opt
  984  make
  985  make install
  986  which rsync_bpc
  987  cd var
  988  cd lib
  989  cd run
  990  mkdir -p /opt/var/lib/backuppc
  991  l /opt/var/lib/backuppc
  992  chown backuppc /opt/var/lib/backuppc
  993  l /opt/var/lib
  994  ipkg install rrdtool
  995  ./configure.pl 
  996  cd BackupPC/
  997  cd /opt/local
  998  cd bin
  999  cd ../cgi-bin/
 1000  cd /var
 1001  cd log
 1002  cd /etc
 1003  cd /var/log
 1004  cd /var/run
 1005  rm -rf BackupPC/
 1006  cd local
 1007  rm -rf backuppc/
 1008  cd ../lib
 1009  m
 1010  rm -rf backuppc
 1011  cd
 1012  cd biuld
 1013  cd build
 1014  cd BackupPC-4.0.0alpha3
 1015  ./configure.pl --config-dir=/opt/etc/backuppc --log-dir=/opt/var/backuppc --run-dir=/opt/var/run/backuppc
 1016  cd /opt
 1017  cd etc
 1018  cd backuppc
 1019  ln -sf . pc
 1020  cd /opt/var/log/
 1021  ls
 1022  cd backuppc/
 1023  l
 1024  cd ..
 1025  history
[root@LaCie-CloudBox var]# cd /opt
[root@LaCie-CloudBox opt]# cd etc
[root@LaCie-CloudBox etc]# rm -rf backuppc
[root@LaCie-CloudBox etc]# cd /opt
[root@LaCie-CloudBox opt]# cd var
[root@LaCie-CloudBox var]# l
[root@LaCie-CloudBox var]# rm -rf backuppc/
[root@LaCie-CloudBox var]# cd run 
[root@LaCie-CloudBox run]# l
[root@LaCie-CloudBox run]# rm -rf backuppc/
[root@LaCie-CloudBox run]# l
[root@LaCie-CloudBox run]# cd /opt/local/
[root@LaCie-CloudBox local]# l
[root@LaCie-CloudBox local]# rm -rf backuppc/
[root@LaCie-CloudBox local]# cd ../lib
[root@LaCie-CloudBox lib]# l
[root@LaCie-CloudBox lib]# ls
[root@LaCie-CloudBox lib]# rm -rf backuppc/
[root@LaCie-CloudBox lib]# cd /shares/
[root@LaCie-CloudBox shares]# cd backuppc/
[root@LaCie-CloudBox backuppc]# rm -rf *
[root@LaCie-CloudBox backuppc]# cd
[root@LaCie-CloudBox ~]# cd build
[root@LaCie-CloudBox build]# cd BackupPC-4.0.0alpha3
[root@LaCie-CloudBox BackupPC-4.0.0alpha3]#  ./configure.pl --config-dir=/opt/etc/backuppc --log-dir=/opt/var/log/backuppc --run-dir=/opt/var/run/bac>

Is this a new installation or upgrade for BackupPC?  If this is
an upgrade please tell me the full path of the existing BackupPC
configuration file (eg: /etc/BackupPC/config.pl).  Otherwise, just
hit return.

--> Full path to existing main config.pl []? 

I found the following locations for these programs:

    bzip2        => /opt/bin/bzip2
    cat          => /opt/bin/cat
    df           => /opt/bin/df
    gtar/tar     => /opt/bin/tar
    gzip         => /opt/bin/gzip
    hostname     => /bin/hostname
    nmblookup    => /usr/bin/nmblookup
    par2         => /opt/bin/par2
    perl         => /opt/bin/perl
    ping         => /bin/ping
    rrdtool      => /opt/bin/rrdtool
    rsync        => /opt/bin/rsync
    rsync_bpc    => /opt/bin/rsync_bpc
    sendmail     => 
    smbclient    => 
    split        => /opt/bin/split
    ssh/ssh2     => /usr/bin/ssh

--> Are these paths correct? [y]? 

Please tell me the hostname of the machine that BackupPC will run on.

--> BackupPC will run on host [LaCie-CloudBox]? 

BackupPC should run as a dedicated user with limited privileges.  You
need to create a user.  This user will need read/write permission on
the main data directory and read/execute permission on the install
directory (these directories will be setup shortly).

The primary group for this user should also be chosen carefully.
The data directories and files will have group read permission,
so group members can access backup files.

--> BackupPC should run as user [backuppc]? 

Please specify an install directory for BackupPC.  This is where the
BackupPC scripts, library and documentation will be installed.

--> Install directory (full path) [/usr/local/BackupPC]? /opt/local/backuppc

Please specify a data directory for BackupPC.  This is where all the
PC backup data is stored.  This file system needs to be big enough to
accommodate all the PCs you expect to backup (eg: at least several GB
per machine).

--> Data directory (full path) [/data/BackupPC]? /shares/backuppc

BackupPC has SCGI and CGI perl interfaces that run under Apache.  You need
to pick which one to run.

For SCGI, Apache uses the scgi_mod module to communicate with BackupPC_Admin_SCGI,
which handles the requests.  This allows Apache to run as a different user as
backuppc.  To use SCGI you need to set SCGIServerPort to any spare
non-privileged TCP port number.  A negative value disables SCGI.

Important security warning!!  The SCGIServerPort must not be accessible by
anyone untrusted.  That means you can't allow untrusted users access to the
BackupPC server, and you should block the SCGIServerPort TCP port from
network access.

The traditional alternative is to use CGI.  In this case, an executable needs
to be installed Apache's cgi-bin directory.  This executable needs to run as
set-uid backuppc, or it can be run under mod_perl with Apache
running as user backuppc.

--> SCGI port (-1 to disable) [-1]? 
--> CGI bin directory (full path, or empty for no CGI) []? /opt/lib/backuppc

BackupPC's CGI and SCGI script need to display various PNG/GIF
images that should be stored where Apache can serve them.  They
should be placed somewhere under Apache's DocumentRoot.  BackupPC
also needs to know the URL to access these images.  Example:

    Apache image directory:  /var/www/htdocs/BackupPC
    URL for image directory: /BackupPC

The URL for the image directory should start with a slash.

--> Apache image directory (full path, or empty for no S/CGI) []? /opt/local/backuppc/cgi-bin 
--> URL for image directory (omit http://host; starts with '/', or empty for no S/CGI) []? /backuppc

Ok, we're about to:

  - install the binaries, lib and docs in /opt/local/backuppc,
  - create the data directory /shares/backuppc,
  - create/update the config.pl file /opt/etc/backuppc/config.pl,
  - optionally install the cgi-bin interface.

--> Do you want to continue? [y]? 
Created /opt/local/backuppc/bin
Created /opt/local/backuppc/share/doc/BackupPC
Created /opt/local/backuppc/lib/BackupPC/CGI
Created /opt/local/backuppc/lib/BackupPC/Config
Created /opt/local/backuppc/lib/BackupPC/Lang
Created /opt/local/backuppc/lib/BackupPC/Storage
Created /opt/local/backuppc/lib/BackupPC/Xfer
Created /opt/local/backuppc/lib/BackupPC/Zip
Created /opt/local/backuppc/lib/Net/FTP
Created /opt/local/backuppc/cgi-bin
Created /shares/backuppc
Created /shares/backuppc/pool
Created /shares/backuppc/cpool
Created /shares/backuppc/pc
Created /opt/etc/backuppc
Created /opt/var/log/backuppc
Created /opt/var/run/backuppc
Installing binaries in /opt/local/backuppc/bin
Installing library in /opt/local/backuppc/lib
Installing images in /opt/local/backuppc/cgi-bin
Making init.d scripts
Making Apache configuration file for suid-perl
Installing docs in /opt/local/backuppc/share/doc/BackupPC
Installing config.pl and hosts in /opt/etc/backuppc
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: seq=0 ttl=64 time=0.336 ms

--- localhost ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.336/0.336/0.336 ms
Installing cgi script BackupPC_Admin in /opt/lib/backuppc

Ok, it looks like we are finished.  There are several more things you
will need to do:

  - Browse through the config file, /opt/etc/backuppc/config.pl,
    and make sure all the settings are correct.  In particular,
    you will need to set $Conf{CgiAdminUsers} so you have
    administration privileges in the CGI interface.

  - Edit the list of hosts to backup in /opt/etc/backuppc/hosts.

  - Read the documentation in /opt/local/backuppc/doc/BackupPC.html.
    Please pay special attention to the security section.

  - Verify that the CGI script BackupPC_Admin runs correctly.  You might
    need to change the permissions or group ownership of BackupPC_Admin.
    If this is an upgrade and you are using mod_perl, you will need
    to restart Apache.  Otherwise it will have stale code.

  - BackupPC should be ready to start.  Don't forget to run it
    as user backuppc!  The installation also contains an
    init.d/backuppc script that can be copied to /etc/init.d
    so that BackupPC can auto-start on boot.  This will also enable
    administrative users to start the server from the CGI interface.
    See init.d/README.

Enjoy!
[root@LaCie-CloudBox BackupPC-4.0.0alpha3]# cd /opt/etc/backuppc
[root@LaCie-CloudBox backuppc]# ln -sf . pc
[root@LaCie-CloudBox backuppc]# cd /opt/sbin
[root@LaCie-CloudBox sbin]# vi backuppc 
[root@LaCie-CloudBox backuppc]# cd /etc
[root@LaCie-CloudBox etc]# cd lighttpd/
[root@LaCie-CloudBox lighttpd]# cp lighttpd.conf lighttpd.conf-bpc3
[root@LaCie-CloudBox lighttpd]# vi lighttpd.conf
[root@LaCie-CloudBox lighttpd]# cd /opt/local/backuppc/cgi-bin/
[root@LaCie-CloudBox cgi-bin]# vi wrapper.c 
[root@LaCie-CloudBox cgi-bin]# cat wrapper.c 
#include <unistd.h>
#define REAL_PATH "/opt/lib/backuppc/BackupPC_Admin"
int main(ac, av)
char **av;
{
	execv(REAL_PATH, av);
	return 0;
}
[root@LaCie-CloudBox cgi-bin]# chmod 550 /opt/lib/backuppc/BackupPC_Admin 
[root@LaCie-CloudBox cgi-bin]# gcc -o index.cgi wrapper.c                 
/opt/lib/gcc/arm-none-linux-gnueabi/4.2.3/../../../../arm-none-linux-gnueabi/bin/ld: Warning: /lib/libc.so.6: Unknown EABI object attribute 44
[root@LaCie-CloudBox cgi-bin]# l 
[root@LaCie-CloudBox cgi-bin]# chown backuppc:users index.cgi 
[root@LaCie-CloudBox cgi-bin]# chmod 4550 index.cgi 
[root@LaCie-CloudBox cgi-bin]# vi /etc/lighttpd/lighttpd.conf
[root@LaCie-CloudBox cgi-bin]# ngc --stop http
[root@LaCie-CloudBox cgi-bin]# ngc --start http
[root@LaCie-CloudBox cgi-bin]# vi /etc/lighttpd/lighttpd.conf
[root@LaCie-CloudBox cgi-bin]# ngc --restart http            
[root@LaCie-CloudBox cgi-bin]# ngc --stop http   
[root@LaCie-CloudBox cgi-bin]# ngc --start http
[root@LaCie-CloudBox cgi-bin]# vi /etc/lighttpd/lighttpd.conf
[root@LaCie-CloudBox cgi-bin]# cat /etc/lighttpd/lighttpd.conf
server.modules              = (
  "mod_redirect",
  "mod_cgi",
  "mod_expire",
  "mod_compress",
  "mod_proxy",
  "mod_fastcgi",
  "mod_rewrite",
  "mod_setenv",
  "mod_secdownload",
  "mod_access",
  "mod_alias",
  "mod_auth",
)

include "secure_password.inc"

server.document-root        = "/www"
server.errorlog             = "/var/log/lighttpd-error.log"
server.pid-file             = "/var/run/lighttpd.pid"
server.upload-dirs          =  ( "/lacie/tmp" )
server.errorfile-prefix     = "/www/errors/status-"

compress.allowed-encodings  = ("gzip", "deflate")
compress.cache-dir          = "/var/tmp/lighttpd"
compress.filetype           = ("text/plain", "text/html", "text/javascript", "text/css", "text/xml")

# Provide a "static" url to retrieve information usefull for production tool for instance.
url.rewrite-once = ("^/info$" => "/api/external/1.0/system_info","^/diagnostics$" => "/api/external/1.0/diagnostics")

index-file.names            = (
  "index.html", "index.php", "index.cgi"
)

# Force HTTPS
$HTTP["scheme"] == "http" {
	# capture vhost name with regex conditiona -> %0 in redirect pattern
	# must be the most inner block to the redirect rule
	$HTTP["host"] =~ ".*" {
		url.redirect = (".*" => "https://%0$0")
	}
}

$HTTP["url"] =~ "index"{
      setenv.add-response-header = ( "Cache-Control" => "no-cache, no-store" )
}

# For GWT
$HTTP["url"] =~ "\.nocache\."{
      setenv.add-response-header = ( "Cache-Control" => "no-cache, no-store" )
}

# For GWT
$HTTP["url"] =~ "\.cache\."{
      expire.url = ( "" => "access 1 months" )
      setenv.add-response-header = ( "Cache-Control" => "public" )
}


$HTTP["url"] =~ "(gif|png|jpg|css)$"{
      expire.url = ( "" => "access 1 months" )
      setenv.add-response-header = ( "Cache-Control" => "public" )
}

$HTTP["url"] =~ "/javascripts/"{
      expire.url = ( "" => "access 1 months" )
      setenv.add-response-header = ( "Cache-Control" => "public" )
}

$HTTP["url"] =~ "/api/local/"{                                    
      url.access-deny = ("")                                      
}

## >>>>>>>>>>>> ADDED FOR BACKUPPC
cgi.assign += ( "/opt/local/backuppc/cgi-bin/index.cgi" => "" )
#alias.url += ("/backuppc/index.cgi" => "/opt/local/backuppc/cgi-bin/index.cgi")
alias.url += ("/backuppc" => "/opt/local/backuppc/cgi-bin" )
#alias.url += ("/BackupPC_Admin" => "/shares/backuppc/www/cgi-bin/BackupPC_Admin")
auth.debug = 2
auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/etc/lighttpd/lighttpd-htpasswd.user"
auth.require = ( "/backuppc" =>
	( "method" => "basic", "realm" => "Password protected area", "require" => "user=backuppc" )
)

proxy.server = (
"/api" => (
  "tornado" => (
    "host" => "127.0.0.1",
    "port" => 8888
  ))
)

fastcgi.server = (
".php"=>
  ((
    "bin-path" => "/usr/bin/php-cgi",
    "socket"=> "/tmp/php.socket",
    "max-procs" => 1,
    "bin-environment" => (
        "PHP_FCGI_CHILDREN" => "2",
        "PHP_FCGI_MAX_REQUESTS" => "1500"
    ),
    "allow-x-send-file" => "enable",
   )),
)

mimetype.assign             = (
  ".pdf"          =>      "application/pdf",
  ".sig"          =>      "application/pgp-signature",
  ".spl"          =>      "application/futuresplash",
  ".class"        =>      "application/octet-stream",
  ".ps"           =>      "application/postscript",
  ".torrent"      =>      "application/x-bittorrent",
  ".dvi"          =>      "application/x-dvi",
  ".gz"           =>      "application/x-gzip",
  ".pac"          =>      "application/x-ns-proxy-autoconfig",
  ".swf"          =>      "application/x-shockwave-flash",
  ".tar.gz"       =>      "application/x-tgz",
  ".tgz"          =>      "application/x-tgz",
  ".tar"          =>      "application/x-tar",
  ".zip"          =>      "application/zip",
  ".mp3"          =>      "audio/mpeg",
  ".m3u"          =>      "audio/x-mpegurl",
  ".wma"          =>      "audio/x-ms-wma",
  ".wax"          =>      "audio/x-ms-wax",
  ".ogg"          =>      "application/ogg",
  ".wav"          =>      "audio/x-wav",
  ".gif"          =>      "image/gif",
  ".jpg"          =>      "image/jpeg",
  ".jpeg"         =>      "image/jpeg",
  ".png"          =>      "image/png",
  ".xbm"          =>      "image/x-xbitmap",
  ".xpm"          =>      "image/x-xpixmap",
  ".xwd"          =>      "image/x-xwindowdump",
  ".css"          =>      "text/css",
  ".html"         =>      "text/html",
  ".htm"          =>      "text/html",
  ".js"           =>      "text/javascript",
  ".asc"          =>      "text/plain",
  ".c"            =>      "text/plain",
  ".cpp"          =>      "text/plain",
  ".log"          =>      "text/plain",
  ".conf"         =>      "text/plain",
  ".text"         =>      "text/plain",
  ".txt"          =>      "text/plain",
  ".dtd"          =>      "text/xml",
  ".xml"          =>      "text/xml",
  ".mpeg"         =>      "video/mpeg",
  ".mpg"          =>      "video/mpeg",
  ".mov"          =>      "video/quicktime",
  ".qt"           =>      "video/quicktime",
  ".avi"          =>      "video/x-msvideo",
  ".asf"          =>      "video/x-ms-asf",
  ".asx"          =>      "video/x-ms-asf",
  ".wmv"          =>      "video/x-ms-wmv",
  ".bz2"          =>      "application/x-bzip",
  ".tbz"          =>      "application/x-bzip-compressed-tar",
  ".tar.bz2"      =>      "application/x-bzip-compressed-tar",
  # default mime type
  ""              =>      "application/octet-stream",
 )

# Redirect all requests to HTTPS, except cgi calls to stay compatible with LEA
#$SERVER["socket"] == ":80" {
#  $HTTP["host"] =~ "(.*)" {
#    url.redirect = ( "^/(?!cgi)(.*)" => "https://%1/$1" )
#  }
#}

# Activate HTTPS
$SERVER["socket"] == ":443" {
  ssl.engine = "enable"
  ssl.pemfile = "/etc/ssl/private/lighttpd.pem"
}
[root@LaCie-CloudBox cgi-bin]# cd /opt
[root@LaCie-CloudBox opt]# cd etc
[root@LaCie-CloudBox etc]# cd backuppc
[root@LaCie-CloudBox backuppc]# vi hosts
[root@LaCie-CloudBox etc]# cd backuppc3
[root@LaCie-CloudBox backuppc3]# cp griffin.pl mandala.pl nxl67170ux.pl pc-112-597.pl ../backuppc/
[root@LaCie-CloudBox backuppc3]# cp xbmcbuntu.pl ../backuppc
[root@LaCie-CloudBox backuppc3]# cd ../backuppc
[root@LaCie-CloudBox backuppc]# cp config.pl config.pl.orig
[root@LaCie-CloudBox backuppc]# chown backuppc:users *
[root@LaCie-CloudBox backuppc]# chown backuppc:root * 
[root@LaCie-CloudBox backuppc]# chmod 640 *
[root@LaCie-CloudBox backuppc]# backuppc start
[root@LaCie-CloudBox backuppc]# cd /etc
[root@LaCie-CloudBox etc]# cd /opt/etc/backuppc
[root@LaCie-CloudBox backuppc]# vi config.pl 
[root@LaCie-CloudBox backuppc]# cd /opt/local/backuppc/lib
[root@LaCie-CloudBox lib]# cd BackupPC/
[root@LaCie-CloudBox BackupPC]# vi Lib.pm 
[root@LaCie-CloudBox BackupPC-4.0.0alpha3]# echo ############### THIS IS IT
[root@LaCie-CloudBox cgi-bin]# ./index 
YOU HAVEN'T DISABLED SET-ID SCRIPTS IN THE KERNEL YET!
FIX YOUR KERNEL, PUT A C WRAPPER AROUND THIS SCRIPT, OR USE -u AND UNDUMP!
[root@LaCie-CloudBox cgi-bin]# cat wrapper.c 
#include <unistd.h>
#define REAL_PATH "/opt/lib/backuppc/BackupPC_Admin"
int main(ac, av)
char **av;
{
	execv(REAL_PATH, av);
	return 0;
}

[root@LaCie-CloudBox cgi-bin]# l /opt/lib/backuppc/BackupPC_Admin 
-r-sr-xr-- 1 backuppc users 4.0K Nov 11 00:28 /opt/lib/backuppc/BackupPC_Admin
[root@LaCie-CloudBox cgi-bin]# mv index index.cgi
[root@LaCie-CloudBox cgi-bin]# chmod 0550 /opt/lib/backuppc/BackupPC_Admin 
[root@LaCie-CloudBox cgi-bin]# ./index.cgi 
[root@LaCie-CloudBox cgi-bin]# backuppc start
[root@LaCie-CloudBox backuppc]# sudo chown backuppc:root *
[root@LaCie-CloudBox backuppc]# sudo chmod 640 *
[root@LaCie-CloudBox backuppc]# su backuppc -s /bin/bash
[root@LaCie-CloudBox etc]#

Troubleshooting

Broken pipe

Typical errors:

rsync_bpc: writefd_unbuffered failed to write 426 bytes to message fd [receiver]: Broken pipe (32)
Possible causes and solutions
  • Happens more frequently with big files, but some small files fail too. Not always the same file
  • Timeout issue
  • Firewall
  • Lots of packet loss / reject. The following iptable route might help [1]:
iptables -I {line} -p tcp --tcp-flags SYN,RST,ACK,FIN ACK -j ACCEPT


Links
  • Interesting discussion on samba.org, with troubleshooting ideas.
  strace -tt -f -o /tmp/rsync-$$.out rsync \
        --verbose \
        --exclude "stor/hosts" \
        --exclude "var/run" \
        --exclude "var/spool" \
        --rsh="ssh -p $backoff_port" \
        --rsync-path="sudo /usr/local/bin/rsync-debug" \
        --recursive \
        --links \
        --perms \
        --times \
        --owner \
        --group \
        --numeric-ids \
        --xattrs \
        --delete \
        --compress \
        --human-readable \
        --stats \
        --exclude='udat/backup*/*' \
        --exclude='udat/migrate/*' \
        /mnt/stor \
        $userid@$backoff_url:$destdir 2>&1

Issues on Lacie-Cloud

Broken pipe, etc

I get failed backup on the lacie-cloud server; I log my findings / tests here.

The current rsync command line is:

/opt/bin/rsync_bpc --bpc-top-dir /shares/backuppc --bpc-host-name zavcxl0005 --bpc-share-name home \
--bpc-bkup-num 1 --bpc-bkup-comp 3 --bpc-bkup-prevnum -1 --bpc-bkup-prevcomp -1 --bpc-bkup-inode0 567 \
--bpc-log-level 3 --super --recursive --protect-args --numeric-ids --perms --owner --group -D --times \
--links --hard-links --delete --partial --log-format=log: %o %i %B %8U,%8G %9l %f%L --stats \
--modify-window=5 --one-file-system --password-file=/shares/backuppc/pc/zavcxl0005/.rsyncdpw6801 \
--exclude=.cache --exclude=.recoll --exclude=.gvfs --exclude=.thumbnails --exclude=.Trash* \
--exclude=*.nobak --exclude=.*.nobak --exclude=.opera/cache --exclude=Snapshots --exclude=Cache \
--exclude=Dropbox --exclude=$RECYCLE.BIN --exclude=$Recycle.Bin --exclude=System Volume Information \
--exclude=lost+found backuppc@zavcxl0005::home /
Notes
  • Still use the old parameter --log-format, which has been deprecated and renamed to --out-format in newer rsync version.
Out-of-memory
  • Look at dmesg output, and see if there was an Out of memory error:
dmesg|grep -iC 3 "out of memory"
grep -iC 3 "out of memory" /var/log/messages     # To get real timestamps
[3421299.359987] 3205 slab pages
[3421299.359993] 7010 pages shared
[3421299.360000] 8723 pages swap cached
[3421299.360010] Out of memory: kill process 15163 (BackupPC_dump) score 277779 or a child
[3421299.360049] Killed process 15168 (rsync_bpc)
[3421299.734728] rsync_bpc: page allocation failure. order:0, mode:0x20058
[3421299.734750] [<c0031b2c>] (unwind_backtrace+0x0/0xd0) from [<c0080eec>] (__alloc_pages_nodemask+0x49c/0x500)
If so, free some memory. Possibly remove hard-link detection which consumes memory [2].

Zombie rsync_bpc processes

I have two processes still running on lacie-cloudbox:

[root@LaCie-CloudBox ~]# /opt/bin/ps faux | grep rsync
Unknown HZ value! (73) Assume 100.
root      2249  0.0  0.0   4748     4 ?        Ss   Jun14   0:00 /usr/bin/rsync --daemon --config=/etc/rsyncd.conf --no-detach
root     26783  0.0  0.3   3608   916 pts/0    S+   20:46   0:00          \_ grep rsync
backuppc  5746  1.5  0.0  85764    56 ?        S    10:24   9:41      \_ /opt/bin/rsync_bpc --bpc-top-dir /shares/backuppc --bpc-host-name graphicdaemon --bpc-share-name d --bpc-bkup-num 213 --bpc-bkup-comp 3 --bpc-bkup-prevnum 212 --bpc-bkup-prevcomp 3 --bpc-bkup-inode0 9109 --bpc-log-level 3 --super --recursive --protect-args --numeric-ids --perms --owner --group -D --times --links --hard-links --delete --partial --log-format=log: %o %i %B %8U,%8G %9l %f%L --stats --modify-window=5 --checksum --one-file-system --password-file=/shares/backuppc/pc/graphicdaemon/.rsyncdpw3449 --exclude=.cache --exclude=.recoll --exclude=.gvfs --exclude=.thumbnails --exclude=.Trash* --exclude=*.nobak --exclude=.*.nobak --exclude=.opera/cache --exclude=Cache --exclude=Dropbox --exclude=Snapshots --exclude=$RECYCLE.BIN --exclude=$Recycle.Bin --exclude=System Volume Information --exclude=lost+found backuppc@graphicdaemon::d /
backuppc  5779 12.7  0.0  77872    56 ?        S    10:25  78:57          \_ /opt/bin/rsync_bpc --bpc-top-dir /shares/backuppc --bpc-host-name graphicdaemon --bpc-share-name d --bpc-bkup-num 213 --bpc-bkup-comp 3 --bpc-bkup-prevnum 212 --bpc-bkup-prevcomp 3 --bpc-bkup-inode0 9109 --bpc-log-level 3 --super --recursive --protect-args --numeric-ids --perms --owner --group -D --times --links --hard-links --delete --partial --log-format=log: %o %i %B %8U,%8G %9l %f%L --stats --modify-window=5 --checksum --one-file-system --password-file=/shares/backuppc/pc/graphicdaemon/.rsyncdpw3449 --exclude=.cache --exclude=.recoll --exclude=.gvfs --exclude=.thumbnails --exclude=.Trash* --exclude=*.nobak --exclude=.*.nobak --exclude=.opera/cache --exclude=Cache --exclude=Dropbox --exclude=Snapshots --exclude=$RECYCLE.BIN --exclude=$Recycle.Bin --exclude=System Volume Information --exclude=lost+found backuppc@graphicdaemon::d /

[root@LaCie-CloudBox ~]# netstat -ane | grep 100.117        
netstat: /proc/net/tcp6: No such file or directory
tcp        0      0 172.19.100.98:49947     172.19.100.117:873      ESTABLISHED 
netstat: /proc/net/udp6: No such file or directory
netstat: /proc/net/raw6: No such file or directory

But the rsyncd daemon on the server failed since 10:46 am:

$ sudo netstat -pna|grep 100.98
$ tail /var/log/rsync.log 
2015/06/19 10:04:31 [2917] send lacie-cloudbox [172.19.100.98] d (backuppc) Games/World_of_Tanks/res/packages/hangar_premium_v2.pkg 28914772
2015/06/19 10:04:31 [2917] send lacie-cloudbox [172.19.100.98] d (backuppc) Games/World_of_Tanks/res/packages/hangar_v2.pkg 27720752
2015/06/19 10:07:43 [2917] send lacie-cloudbox [172.19.100.98] d (backuppc) Games/World_of_Tanks/res/packages/misc.pkg 752868269
2015/06/19 10:12:46 [2917] send lacie-cloudbox [172.19.100.98] d (backuppc) Games/World_of_Tanks/res/packages/shaders.pkg 4879357
2015/06/19 10:17:52 [2917] send lacie-cloudbox [172.19.100.98] d (backuppc) Games/World_of_Tanks/res/packages/shared_content.pkg 950719654
2015/06/19 10:17:52 [2917] send lacie-cloudbox [172.19.100.98] d (backuppc) Games/World_of_Tanks/res/packages/shared_content.prefetch 394119
2015/06/19 10:24:52 [2917] send lacie-cloudbox [172.19.100.98] d (backuppc) Games/World_of_Tanks/res/packages/vehicles_level_01.pkg 36603536
2015/06/19 10:27:20 [2917] send lacie-cloudbox [172.19.100.98] d (backuppc) Games/World_of_Tanks/res/packages/vehicles_level_02.pkg 276573347
2015/06/19 10:46:28 [2917] rsync: [sender] write error: Invalid argument (22)
2015/06/19 10:46:28 [2917] rsync error: error in socket IO (code 10) at io.c(837) [sender=3.1.0]
$ ps faux | grep rsync
isma      8126  0.0  0.0  14776   944 pts/0    S+   20:51   0:00              \_ grep rsync

Checking the client log on lacie-cloudbox (using BackupPC_zcat to decompress), we actually observe that the log is truncated much before the rsyncd log. So it seems the client broke but did not exit. So adding param --timeout to rsync client might not help here.

bpc_fileOpen: can't open pool file

I get for each backup the same error message:

     same   recv >f......... rwxrwx---        0,      46       640 Windows/winsxs/FileMaps/$$_ime_fr-fr_0d349902e45b4cea.cdf-ms
 G bpc_fileOpen: can't open pool file /shares/backuppc/cpool/f8/02/f803002e8050e1931403001000000000 (from Windows/winsxs/Manifests/amd64_prnin004.inf-languagepack_31bf3856ad364e35_6.1.7600.16385_en-us_426884f5a0a5f5a4.manifest, 3, 16)
 rsync_bpc: failed to open "/Windows/winsxs/Manifests/amd64_prnin004.inf-languagepack_31bf3856ad364e35_6.1.7600.16385_en-us_426884f5a0a5f5a4.manifest", continuing: No such file or directory (2)
     same   recv >f......... rwxrwx---        0,      46      2136 Windows/winsxs/FileMaps/$$_ime_imejp10_dicts_281006c600450618.cdf-ms

The problem is not solved at next backup. A similar problem is reported by another user on backuppc-users mailing list [3].

Stale transfer

Some troubleshooting commands [4]:

strace -p $PID
lsof -f | grep rsync                          # and the following to confirm)

FIXED - rsync_bpc keep transfering same file on ntfs-3g mount

SOLUTION: Remove options --links and --hard-links when backing up ntfs-3g partitions !!!


Setup
  • /c is a ntfs-3g mount. Content of /etc/fstab:
UUID=445E1B975E1B813A 				/c              ntfs    ro,defaults,nls=utf8,umask=007,gid=46 0       0
  • To test this, add to /etc/rsyncd.conf:
+[test1]
+comment = Test share 1
+path = /c/Boot
  • In a separate window, monitor the rsyncd log file:
tail -f /var/log/rsync.log
  • Create rsync password file:
sudo -v; sudo sed -r 's/^.*://' /etc/rsyncd.secrets | sudo tee /tmp/rsyncd.secrets > /dev/null; sudo chmod 600 /tmp/rsyncd.secrets
Test case one - PASS - rsync + ntfs-3g
  • Initialize:
sudo rm -rf /tmp/rsynctest; sudo mkdir /tmp/rsynctest
  • Repeat the following step, and observe that files are only txfed the first time:
sudo rsync --super --recursive --protect-args --numeric-ids --perms --owner --group -D --times \
--links --hard-links --delete --partial --log-format='log: %o %i %B %8U,%8G %9l %f%L' --stats \
--modify-window=5 --one-file-system --password-file=/tmp/rsyncd.secrets \
--checksum backuppc@griffin::test1 /tmp/rsynctest
Test case two - FAIL - rsync_bpc + ntfs-3g
  • Initialize:
sudo rm -rf /tmp/rsynctest; sudo mkdir -p /tmp/rsynctest/cpool; i=0
  • Repeat the following step, and observe that files are always txfed:
cd /tmp/rsynctest; i=$((i+1)); echo backup $i; sudo cp -ar pc/griffin/$((i-1)) pc/griffin/$i; \
sudo rsync_bpc --bpc-top-dir /tmp/rsynctest --bpc-host-name griffin --bpc-share-name test1 --bpc-bkup-num $i \
--bpc-bkup-comp 3 --bpc-bkup-prevnum $((i-1)) --bpc-bkup-prevcomp 3 --bpc-log-level 3  --super --recursive \
--protect-args --numeric-ids --perms --owner --group -D --times --links --hard-links --delete --partial \
--log-format='log: %o %i %B %8U,%8G %9l %f%L' --stats --modify-window=5 --one-file-system \
--password-file=/tmp/rsyncd.secrets backuppc@griffin::test1 /

Increase --bpc-log-level (say set it to 9) to get more debug output.

Test case three - PASS - rsync_bpc + ntfs_3g fixed
  • Edit /etc/rsyncd.conf such that share test1 no longer points to an ntfs-3g mount point. For instance:
 [test1]
 comment = Test share 1
-path = /c/Boot
+path = /boot
  • Run step above, and observe that files are only txfed once.
  • If running other cases, reset share to ntfs-3g:
 [test1]
 comment = Test share 1
-path = /boot
+path = /c/Boot
Test case fourth - rsync_bpc + ntfs-3g that works
  • Initialize:
sudo rm -rf /tmp/rsynctest; sudo mkdir -p /tmp/rsynctest/cpool; i=0
  • Repeat the following step, and observe that files are only txfed the first time when removing parameters --links --hard-links:
cd /tmp/rsynctest; i=$((i+1)); echo backup $i; sudo cp -ar pc/griffin/$((i-1)) pc/griffin/$i; \
sudo rsync_bpc --bpc-top-dir /tmp/rsynctest --bpc-host-name griffin --bpc-share-name test1 --bpc-bkup-num $i \
--bpc-bkup-comp 3 --bpc-bkup-prevnum $((i-1)) --bpc-bkup-prevcomp 3 --bpc-log-level 3  --super --recursive \
--protect-args --numeric-ids --perms --owner --group -D --times --delete --partial \
--log-format='log: %o %i %B %8U,%8G %9l %f%L' --stats --modify-window=5 --one-file-system \
--password-file=/tmp/rsyncd.secrets backuppc@griffin::test1 /