3.2 Backup Client
3.2.1 Installation
As user root install the amanda-client package.
# apt-get update
# apt-get install amanda-client xinetd openssh-server
Accept the additional packages required when prompted.
3.2.2 (If Applicable) Comment Amanda Entries In Inetd Configuration File
The packages configure both inetd and xinetd. In this howto we only use xinetd.
Edit /etc/inetd.conf and comment amanda related lines:
#:OTHER: Other services
#amanda dgram udp wait backup /usr/sbin/tcpd /usr/lib/amanda/amandad -auth=bsd amdump amindexd amidxtaped
3.2.3 Modify Amanda Daemons To Use auth bsdtcp
For details check the wiki.
Edit amanda, amidxtape and amandaidx files in /etc/xinetd.d/ to match the following:
# cat /etc/xinetd.d/amanda| grep -v "^#"
service amanda
{
socket_type = stream
protocol = tcp
wait = no
user = backup
group = backup
groups = yes
server = /usr/lib/amanda/amandad
server_args = -auth=bsdtcp amdump amindexd amidxtaped
disable = no
}
Enable changes:
# /etc/init.d/xinetd restart
3.2.4 Client Configuration: amanda-client.conf
# vi /etc/amanda/amanda-client.conf
conf "DailySet1" # your config name index_server "bckserver.mydomain.com" # your amindexd server tape_server "bckserver.mdomain.com" # your amidxtaped server auth "bsdtcp"
3.2.5 Authorizations: amandahosts
Edit the amandahosts file to allow backups from bckserver:
# vi /etc/amanda/amandahosts
bckserver.mydomain.com backup amdump
The line "bckserver.mydomain.com backup amdump" allows user backup from bckserver to run backups on bckclient.
Details on file syntax and authentification here.
Note: Since we use fully qualified domain names, your name resolution (/etc/hosts or DNS and reverse DNS) must be correctly set up and tested. If you are unsure use IP addresses.
# ls -la /var/backups/.amandahosts
lrwxrwxrwx 1 root root 23 mai 25 11:19 /var/backups/.amandahosts -> /etc/amanda/amandahosts
# ls -l /etc/amanda/amandahosts
-rw------- 1 backup backup 42 mai 26 23:21 /etc/amanda/amandahosts
3.2.6 Exclude List
As user backup create an exclude list. Bare in mind paths are relative. More details here.
$ vi /etc/amanda/DailySet1/global-debian-exclude.list
./proc ./media ./mnt ./dev
chmod 644 /etc/amanda/DailySet1/global-debian-exclude.list
Note: in my example the exclude list applies to the 3 filesystems. If you want to avoid this, define different exclude lists related to differents dumptypes and modify disklist file accordingly.
3.3 Tests
3.3.1 Config Test
Log on as user backup on bckserver and issue the following command:
$ amcheck DailySet1
Amanda Tape Server Host Check
-----------------------------
Holding disk /dumps/: 48800396 kB disk space available, using 48800396 kB
slot 2: read label `DailySet1-02', date `20100607'
cannot overwrite active tape DailySet1-02
slot 3: read label `DailySet1-03', date `X'
NOTE: skipping tape-writable test
Tape DailySet1-03 label ok
NOTE: host info dir /etc/amanda/DailySet1/curinfo/bckclient.mydomain.com does not exist
NOTE: it will be created on the next run.
NOTE: index dir /etc/amanda/DailySet1/index/bckclient.mydomainman .com does not exist
NOTE: it will be created on the next run.
Server check took 0.115 seconds
Amanda Backup Client Hosts Check
--------------------------------
Client check: 1 host checked in 0.132 seconds, 0 problems found
(brought to you by Amanda 2.5.2p1)
3.3.2 Backup Test
Log on as user backup on bckserver and issue the following command:
$ amdump DailySet1
Note: to force a full backup issue the follwing command before the amdump:
$ amadmin DailySet1 force bckclient.mydomain.com
On completion check backup_admin@mydomain.com mails for a backup notification.
Hostname: bckserver
Org : DailySet1
Config : DailySet1
Date : June 7, 2010
These dumps were to tape DailySet1-03.
The next tape Amanda expects to use is: a new tape.
The next new tape already labelled is: DailySet1-04.
STATISTICS:
Total Full Incr.
-------- -------- --------
Estimate Time (hrs:min) 0:00
Run Time (hrs:min) 0:06
Dump Time (hrs:min) 0:05 0:05 0:00
Output Size (meg) 766.7 766.7 0.0
Original Size (meg) 1363.0 1363.0 0.0
Avg Compressed Size 56.3 56.3 --
Filesystems Dumped 1 1 0
Avg Dump Rate (k/s) 2730.3 2730.3 --
Tape Time (hrs:min) 0:01 0:01 0:00
Tape Size (meg) 766.8 766.8 0.0
Tape Used 15.0 15.0 0.0
Filesystems Taped 1 1 0
Chunks Taped 0 0 0
Avg Tp Write Rate (k/s) 9490.5 9490.5 --
USAGE BY TAPE:
Label Time Size % Nb Nc
DailySet1-03 0:01 785152k 15.0 1 0
NOTES:
planner: tapecycle (9) <= runspercycle (10)
planner: Adding new disk bckclient.mydomain.com:/.
driver: WARNING: This is not the first amdump run today. Enable the usetimestamps option in the configuration file if you want to run amdump more than once per calendar day.
taper: tape DailySet1-03 kb 785184 fm 1 [OK]
small estimate: bckclient.mydomain.com / 0
est: 697920k out 785152k
DUMP SUMMARY:
DUMPER STATS TAPER STATS
HOSTNAME DISK L ORIG-kB OUT-kB COMP% MMM:SS KB/s MMM:SS KB/s
-------------------------- ------------------------------------- -------------
bckclient / 0 1395720 785152 56.3 4:48 2730.3 1:23 9490.4
bckclient /boot 0 16320 15520 95.1 0:04 4324.4 0:00 98858.5
bckclient -mysite.com 0 34750 11488 33.1 0:09 1228.3 0:01 16425.6
(brought to you by Amanda version 2.5.2p1)
$ amadmin DailySet1 find
date host disk lv tape or file file part status 2010-06-07 bckclient.mydomain.com / 1 DailySet1-04 1 -- OK
2010-06-07 bckclient.mydomain.com / 1 DailySet1-05 1 -- OK
2010-06-07 bckclient.mydomain.com / 1 DailySet1-06 1 -- OK
2010-06-07 bckclient.mydomain.com / 0 DailySet1-01 0 -- FAILED (dumper) [port open: Connection timed out]
2010-06-07 bckclient.mydomain.com / 0 DailySet1-01 0 -- FAILED (dumper) [port open: Connection timed out]
2010-06-07 bckclient.mydomain.com / 0 DailySet1-02 0 -- FAILED (dumper) [port open: Connection timed out]
2010-06-07 bckclient.mydomain.com / 0 DailySet1-02 0 -- FAILED (dumper) [port open: Connection timed out]
2010-06-07 bckclient.mydomain.com / 0 DailySet1-03 1 -- OK
2010-06-07 bckclient.mydomain.com / 0 DailySet1-07 1 -- OK
2010-06-07 bckclient.mydomain.com / 0 DailySet1-08 3 -- OK
2010-06-07 bckclient.mydomain.com /boot 0 DailySet1-08 1 -- OK
2010-06-07 bckclient.mydomain.com /var/www/www.mysite.com 0 DailySet1-08 2 -- OK
3.4 Backup Scheduling
Daily backup every day at 1:00AM:
# su backup -c "crontab -e"
0 1 * * 1-7 /usr/sbin/amdump DailySet1
3.5 Restore
3.5.1 Backup Client Configuration
Log on as user root on the bckclient.
Create an amanda-client.conf file:
# su backup -c "mkdir /etc/amanda"
# vi /etc/amanda/amanda-client.conf
conf "DailySet1" # your config name (used for restore)
index_server "bckserver.mydomain.com" # your amindexd server
tape_server "bckserver.mydomain.com" # your amidxtaped server
auth "bsdtcp"
# ls -ltr /etc/amanda/DailySet1/amanda-client.conf
lrwxrwxrwx 1 root root 30 mai 25 17:50 /etc/amanda/DailySet1/amanda-client.conf -> /etc/amanda/amanda-client.conf
Note: If you mix weekly (long retention) and daily backups (short retention) for the same backup client you will have to specify the right conf (WeeklySet1 or DailySet1) for restore.
3.5.2 Recover
As user root on bckclient cd to a suitable place for restore (/tmp for example) and issue the following command:
# amrecover
AMRECOVER Version 2.5.2p1. Contacting server on bckserver.mydomain.com ...
220 bckserver AMANDA index server (2.5.2p1) ready.
Setting restore date to today (2010-06-07)
200 Working date set to 2010-06-07.
200 Config set to DailySet1.
501 Host bckclient is not in your disklist.
Trying host bckclient.mydomain.com ...
200 Dump host set to bckclient.mydomain.com.
Use the setdisk command to choose dump disk to recover
amrecover> listdisk
200- List of disk for host bckclient.mydomain.com
201- /
201- /var/www/www.mysite.com
201- /boot
amrecover> setdisk /var/www/www.mysite.com
200 Disk set to /var/www/www.mysite.com.
amrecover> ls
2010-06-07 xmlrpc/
2010-06-07 tmp/
2010-06-07 templates/
2010-06-07 robots.txt
2010-06-07 plugins/
2010-06-07 modules/
2010-06-07 logs/
2010-06-07 libraries/
2010-06-07 language/
2010-06-07 index2.php
2010-06-07 index.php
2010-06-07 includes/
2010-06-07 images/
2010-06-07 htaccess.txt
2010-06-07 configuration.php-dist
2010-06-07 configuration.php
2010-06-07 components/
2010-06-07 cache/
2010-06-07 aicontactsafe/
2010-06-07 administrator/
2010-06-07 LICENSES.php
2010-06-07 LICENSE.php
2010-06-07 INSTALL.php
2010-06-07 CREDITS.php
2010-06-07 COPYRIGHT.php
2010-06-07 CHANGELOG.php
2010-06-07 .htaccess
2010-06-07 .
amrecover> add *
Added dir /xmlrpc/ at date 2010-06-07
Added dir /tmp/ at date 2010-06-07
Added dir /templates/ at date 2010-06-07
Added file /robots.txt
Added dir /plugins/ at date 2010-06-07
Added dir /modules/ at date 2010-06-07
Added dir /logs/ at date 2010-06-07
Added dir /libraries/ at date 2010-06-07
Added dir /language/ at date 2010-06-07
Added file /index2.php
Added file /index.php
Added dir /includes/ at date 2010-06-07
Added dir /images/ at date 2010-06-07
Added file /htaccess.txt
Added file /configuration.php-dist
Added file /configuration.php
Added dir /components/ at date 2010-06-07
Added dir /cache/ at date 2010-06-07
Added dir /aicontactsafe/ at date 2010-06-07
Added dir /administrator/ at date 2010-06-07
Added file /LICENSES.php
Added file /LICENSE.php
Added file /INSTALL.php
Added file /CREDITS.php
Added file /COPYRIGHT.php
Added file /CHANGELOG.php
Added file /.htaccess
amrecover> extract
Extracting files using tape drive chg-disk on host bckserver.mydomain.com.
The following tapes are needed: DailySet1-08
Restoring files into directory /tmp
Continue [?/Y/n]? y
Extracting files using tape drive chg-disk on host bckserver.mydomain.com.
Load tape DailySet1-08 now
Continue [?/Y/n/s/t]? y
./administrator/
./administrator/backups/
Note:
tree navigation with cd
time navigation with setdate.
restore to another host with sethost
4. References Used To Build This Howto:
Disk Based Backups With Amanda On Debian Etch