NSLU2-Linux
view · edit · print · history

Amanda backup client

Amanda www.amanda.org (The Advanced Maryland Automatic Network Disk Archiver)

Amanda is an excellent open source client/server automated network backup solution. Which I believe will allow more serious use of the slug as a NAS system (the alternative I've used to date is to write individual users directories to DVD-RW).

This may be of most use to people who have already installed an Amanda server within their environment.

My slug is an NFS NAS file server, with SSH logins, SFTP, GNU gcc compilation toolchain, and most of the standard linux core utilities (see below for full list, not all are necessary).

Amanda client and server versions: 2.5.0p2
Server details: Solaris 9, Sun Blade 1000 with Quantum DLT-V4 160/320 GB tape drive
client details: Linux <client name> 2.4.22-xfs #1 Thu Feb 3 22:51:32 CST 2005 armv5b unknown unknown GNU/Linux

unslung version: 3.18beta

You'll need to create an amanda user (same user as on your server) on your slug with membership of group root

Download and untar the amanda distribution on to your slug

Then it is fairly standard unix/linux compilation procedure

as amandauser:

bash-2.05b$ ./configure <See configuration options below>
bash-2.05b$ make

Then as root:

bash-2.05b$ make install

I had lots of path problems, so once you have amandauser setup with PATH and LD_LIBRARY_PATH and your installing as root, run a root bash shell and then source amandauser's .bashrc

The main compilation problem was (apparently) common-src/genversion.c truncating lines when producing common-src/version.c.

    size_t len = strlen(string) + 1;

    new_len = strlen(var)
              + SIZEOF("=\\\"")
              + strlen(val)
              + SIZEOF("\\\"")
              + 1;

    new_len = strlen(var)
              + SIZEOF("=")
              + strlen(number)
              + 1;
    v_len = SIZEOF("Amanda-") + strlen(v) + 1;

Changing +1 to +3 created version.c correctly and allowed compilation.

make gives yacc errors with amrecover so build without

./configure --prefix=/share/hdd/conf/opt/Amanda --with-user=amandauser --with-group=root --without-server --without-amrecover --with-includes=/opt/armeb/armv5b-softfloat-linux/sys-include LDFLAGS=-L/share/hdd/data/armeb/armv5b-softfloat-linux/lib

n.b. Amanda's home directory /opt/Amanda is a link to /share/hdd/conf/opt/Amanda

Runtime libs not found so link the libraries to /lib

 # ln -s /share/hdd/conf/opt/Amanda/lib/libamclient-2.5.0p2.so /lib/libamclient-2.5.0p2.so
# ln -s /share/hdd/conf/opt/Amanda/lib/libamanda-2.5.0p2.so /lib/libamanda-2.5.0p2.so

amcheck gave 0kb available in /tmp/amanda error so give quick fix.

 # ln -s /share/hdd/data/amanda /tmp/amanda

Configuration

Client configuration file entries
=================================

xinetd fails silently so use inetd (used on both the server and the client)

/etc/inetd.conf

amanda dgram udp wait amandauser /share/hdd/conf/opt/Amanda/libexec/amandad amandad

/opt/Amanda/.amandahosts

server.full.domain.name amandauser amdump

/etc/services (already contained amanda entries)

amanda 10080/udp # amanda backup services
amandaidx 10082/tcp # amanda backup services
amidxtape 10083/tcp # amanda backup services

Also make sure /etc/hosts has an entry specifying server.full.domain.name

Finally

add the disks you wish to backup to your servers configuration files

/opt/Amanda/etc/amanda/<configuration>/disklist

client.full.domain.name /dev/sdba1 user-tar

and allow the client to connect to the server by adding to the servers

/opt/Amanda/.amandahosts

client.full.domain.name amandauser amandad amindexd amidxtaped

Then check by running amcheck on the server

/opt/Amanda/sbin/amcheck <configuration>

Then run amdump on the server

/opt/Amanda/sbin/amdump <configuration>

N.B.

This took several weeks to get the packages to compile and install and to work out the .amandahosts service entries, the silent failures, problems when the Fully Qualified Domain Name isn't quite what you'd expected it to be, etc. BUT it does work, it backs up, and it restores (running amrecover on the server). So if at first you don't succeed, carry on until your eyeballs bleed :)

Compiled and installed packages
===============================

dump-0.4b41
bison-2.1
flex-2.5.4
diffutils-2.8.1
dump-0.4b41
perl-5.6.1
DB_File-1.810
time-hires-1.65
texinfo-4.8
gperf-3.0.1
indent-2.2.9

Installed ipkg packages
=======================

autoconf - 2.59-2 - Creating scripts to configure source code packages using tem plates
automake - 1.9.6-1 - Creates GNU standards-compliant Makefiles from template file
bash - 2.05b-5 -
bzip2 - 1.0.3-6 - Very high-quality data compression program
coreutils - 5.2.1-5 -
cpio - 2.5-r2 -
crosstool-native - 0.28-rc37-5 - Bootstrap toolchain including GCC 3.3.5, GLIBC 2.2.5, BINUTILS 2.15.94.0.2, and LINUX 2.4.22 headers.
crosstool-native-arch-bin - 0.28-rc37-5 - Bootstrap toolchain including GCC 3.3. 5, GLIBC 2.2.5, BINUTILS 2.15.94.0.2, and LINUX 2.4.22 headers.
crosstool-native-arch-inc - 0.28-rc37-5 - Bootstrap toolchain including GCC 3.3. 5, GLIBC 2.2.5, BINUTILS 2.15.94.0.2, and LINUX 2.4.22 headers.
crosstool-native-arch-lib - 0.28-rc37-5 - Bootstrap toolchain including GCC 3.3. 5, GLIBC 2.2.5, BINUTILS 2.15.94.0.2, and LINUX 2.4.22 headers.
crosstool-native-bin - 0.28-rc37-5 - Bootstrap toolchain including GCC 3.3.5, GL IBC 2.2.5, BINUTILS 2.15.94.0.2, and LINUX 2.4.22 headers.
crosstool-native-inc - 0.28-rc37-5 - Bootstrap toolchain including GCC 3.3.5, GL IBC 2.2.5, BINUTILS 2.15.94.0.2, and LINUX 2.4.22 headers.
crosstool-native-lib - 0.28-rc37-5 - Bootstrap toolchain including GCC 3.3.5, GL IBC 2.2.5, BINUTILS 2.15.94.0.2, and LINUX 2.4.22 headers.
findutils - 4.2.27-1 - File finding utilities
gawk - 3.1.5-1 - Gnu AWK interpreter
gdb - 6.3-2 - gdb is the standard GNU debugger
groff - 1.19.1-5 - front-end for the groff document formatting system
ipkg - 0.99.138-r0 -
less - 394-1 - Less file browser
libc6-unslung - 2.2.5-r4 -
libgcc - 3.4.3-r5 -
libipkg - 0.99.138-r0 -
libstdc++ - 5.0.7-4 - Standard C++ library, needed for dynamically linked C++ pr ograms
lsof - 4.77.dfsg.1-1 - list Open Files - a diagnostic tool.
m4 - 1.4.1-2 - gnu macro processor and compiler front end
make - 3.81-1 - examines files and runs commands necessary for compilation
man - 1.5p-4 - unix manual page reader
ncurses - 5.4-3 -
ncursesw - 5.5-1 - ncurses libraries with wide char support.
net-tools - 1.60-2 - Network Config and Debug tools (route, arp, netstat etc.)
nfs-utils - 1.0.6-3 -
nmap - 4.10-1 - Nmap is a feature-rich portscanner
nslu2-linksys-libs - 2.3r25-r2 -
ntpclient - 2003_194-3 - Using rfc1305 (NTP), retrieves a remote date and time
openssh - 3.8p1-3 -
openssl - 0.9.7d-3 -
patch - 2.5.4-3 - applies a diff to produce a patched file
pcre - 5.0-5 - Perl-compatible regular expression library
portmap - 4-3 -
readline - 5.1-1 - The GNU Readline library provides a set of functions for use by applications that allow users to edit command lines as they are
rsync - 2.6.3-7 -
sed - 4.1.4-2 - Stream editor.
slingbox - 1.00-r4 -
stunnel - 4.07-7 - SSL encryption wrapper for all kinds of servers
tar - 1.15.1-1 - heavyweight version of the tape archiver
tcpdump - 3.9.4-1 - tcpdump dumps the traffic on a network
termcap - 1.3.1-2 - Terminal emulation library
unslung-standard-rootfs - 2.3r25-r41 -
wget - 1.9.1-r1 -
xinetd - 2.3.14-4 - Highly configurable, modular and secure inetd
zlib - 1.2.2-2 -

view · edit · print · history · Last edited by Marc O'Brien.
Based on work by Marc O'Brien.
Originally by mobriensgulacuk.
Page last modified on August 24, 2006, at 03:42 PM