AMANDA backup in five steps

As with http caching software, there are many software applications you can use to backup Linux and other clients or peers. I give no comment to those products that their authors do not make easy to purchase or obtain. When preparing tenders or quotations it is unacceptable to have to haggle over hardware specifics for the purchase of a minor part of a task. Many have offered to make me a reseller; this is just nonsense, I have no interest in selling software and it is not honest, my role is to provide the best solution, not that which I receive most money.

I started using Arkeia for my last client as I wanted to provide a GUI to make backups and restores easier. This was in fact too complex, I replaced it with Amanda and it has been nothing but rosy. One department gets a daily email advising what has been backed up and which tape to put in next, the other department receives only two emails a week and has less onerous backup requirements. Restores are infrequent; however it was easier to provide complete documentation on the FTP-like interface to AMANDA.

Those that I have looked at, and this only equates to my personal opinions on these items:

  • Amanda
    A beautiful piece of software. It seems improvements come fast and thick, in addition it is possible to make your own additions and improvements as Amanda is open source software. It is tricky to set up; however once done, it requires minimal management. Amanda provides very useful output at all times for both management of backups and debugging during setup.
  • Bacula
    I have not had a good look at this software; however on a brief overview looks quite powerful.
  • Tapeware
    I like the fact the Tapeware publish their prices. Many other software companies selling backup software need your shoe size and dietary requirements before they will give you a price for the software. The price for Tapeware is cheaper than many; however I found it totally unacceptable that Tapeware binds to the SCSI interface stopping anything else from operating on the SCSI chain. Hence this was rejected.
  • Arkeia
    Great as they offer three licences free, so it is useful for small domestic networks.
    Unfortunately, expensive and no clear pricing, poor to non-existent logging for trouble shooting and the latest GUI is a useless monster.
  • Netbackup
    No clear pricing.
  • Bru Pro
    No clear pricing
  • Bakbone
    No clear pricing.
  • Time Navigator
    No clear pricing
  • SBA
    Pricing published, much cheaper than products such as Netbackup; however I have not tried this software, though it would have to be very special to move me away from AMANDA.

The set up of Amanda may be done over a couple of days, there is quite a time consuming process (time consuming for the tape drive, not the operator) that makes life a little easier. This was originally written as a “Five days to Amanda” guide. Often Sys Admins are busy and backups are left and neglected as other ‘more important’ items are done instead. The idea was to provide a 30 minute job everyday and have the backups working by the end of the week :-)

Day One:

run the command amtapetype -f /dev/nst0
This is done so that you may receive an analysis of the tape device and the tape types. This is relevant, for example a Compaq 12/24 Gb DAT drive using DDS3 tapes may only provide 10Gb of space for backups. If the AMANDA configuration is told that the tapes will hold 12Gb then you will consistently get failed backups owing to lack of space.

The output from amtapetype may well take many hours as it writes to the complete tape a couple of times.

The output will look something like this:
tapetype tape-dds3 {
comment “just produced by amtapetype program”
length 9922 mbytes
filemark 0 kbytes
speed 973 kps

You need to edit the file /etc/amanda/DailySet1/amanda.conf about half-way down the file you will find many tape definitions and you should add the new one you have just created. Please note that the name of the tape should be unique within the file, I have called mine tape-dds3. do not put spaces in, keep it short and simple. You will see other tape names such as DAT and QIC-60. Also ensure you get both parentheses in too. Further up in the file you will see the definition within the configuration file: tapetype HP-DAT (or similar), this should be changed to tapetype yournewname. I have tapetype tape-dds3.

There are three amanda packages available from Red Hat, these are amanda, amanda-client and amanda-server. For the clients you will only need amanda and amanda client. For the server you will obviously need amanda-server too. There is an example configuration in /etc/amanda/DailySet1/, using this and modifying the files to make them work for the particular setup required is the easiest option.

Day Two:

edit the file /etc/amanda/DailySet1/amanda.conf, the items you need to set in this file are as follows:

  1. org – This is in the email subject to differentiate between different backups.
  2. mailto – This should be set to the administrator’s email addresses. Multiple addresses may be entered separated by spaces.
  3. tapecycle – This is the number of tapes in circulation. It is much easier if the tapes are labelled before we start testing. If Amanda encounters an unlabelled tape, it will be rejected rather than attempt to overwrite it.
  4. tapedev /dev/null – this should be changed to tapedev /dev/nst0, this is the non-rewinding device for Linux. If you are using a different Unix, then this will be different.

Day Three:

Label a tape:

The command should be run as amanda, so here we have the command, by the user root

su amanda -c “/usr/sbin/amlabel DailySet1 DailySet101”

This command may be broken down as follows:

su (super user / switch user) to amanda -c (run command as this user) amlabel a tape belonging to backup group DailySet1 and label it as DailySet101. Note that the amanda.conf file specifies what the tapes may be labelled as, by default this is DailySet100 to DailySet199. The default back up cycle is a month.

If there is an error you normally get a good error message to advise you how to fix it. You will probably get a warning message regarding inability to read .bashrc, this is not something to worry about. I would suggest getting one backup to work and then labelling all the tapes, this may take some time as each tape could take 30-45 seconds to label.

Now we set one partition to backup:

edit file /etc/amanda/DailySet1/disklist down at the bottom, comment out using # all of the backups that are there by default or for example.

Put in one backup that being the name of your machine:

localhost /etc comp-root-tar This will only backup the /etc partition, which is normally quite small and makes a good test.

final task for Day three is to test and then run a backup:

run the command:

su amanda -c “/usr/sbin/amcheck DailySet1”

This should give us some diagnostic data and tell us whether there are any problems. If this is the first time the backup has been run, it will normally complain about missing index files. These are created during the backup.

Try running the backup and it will continue until finished at which point it will send the admins an email to tell you all is done and provide a report:

su amanda -c “/usr/sbin/amdump DailySet1”


Day Four:

Once we have operational backups, we can then automate them:

As root run the following command:

crontab -e

This will normally open the vi editor to edit your cron schedule.

press i to insert and type the following:

# backup daily
5 2 * * 1,2,3,4,5 su amanda -c “/usr/sbin/amdump DailySet1”
0 16 * * 1,2,3,4,5 su amanda -c “/usr/sbin/amcheck DailySet1”

These will run backups at 2:05am every weekday (late Sunday night – Monday morning) and at 4pm run a diagnostic to ensure that you have put the correct tape in and that all backup hosts are available.

Day Five:

The last jobs are to add disks / machines to the backup, this will probably carry on over time as the system is tweaked and machines are added to the network.

The Amanda client is only available to Unix systems at present; however other systems may be backed up using file shares and the samba libraries.

Unix systems:

For every machine that you add to the disklist / backup you have to tell the client machine that it authorises the backup server to access it. This is done by putting the backup server name in the following file:


Just put the server name on a line on its own. Please note that the authorisation will fail if it fails to resolve this IP using DNS. To get round this you can enter the name and IP address in the /etc/hosts file.

you can then add more machines to the disk list as follows: /etc comp-root-tar /home comp-root-tar hda1 comp-root-tar

note that you can either use hardware names or the partitions:

The hard drive names may be found using the command mount with no arguments. Please also note that amanda cannot backup a disk or partition larger than one disk at present. This may change in the future. Amanda works very well spreading full backups across the backup cycle, so that full backups are done as frequently as possible and does not leave a huge backup rush at the month end.

You may also want to exclude a number of files from the backup, this is done using the following file: /usr/local/lib/amanda/exclude.gtar
The contents of the file will be similar to the following:
*/.netscape/cache */gnutar-lists/*.new

Windows systems:

To backup windows systems you may wish to ensure that you have the latest version of Amanda available, these instructions assume you are using at least 2.4.3.

These systems are also entered into the disklist file as follows: //windowsclient/share comp-root-tar

Windows clients also need to use another file containing the passwords for the shares:
The share containing the passwords is /etc/amandapass and has the following format:
//windowsmachine/share user%pass
This file must be readable only by user amanda and group disk. This can be adjusted using the following commands:
chown amanda.disk /etc/amandapass
chmod o-rwx /etc/amandapass

Please note that the samba server can be the backup server or another system; however this must be enabled as a client.