from small one page howto to huge articles all in one place
 

search text in:




Other .linuxhowtos.org sites: www.linuxhowtos.org
toolsntoys.linuxhowtos.org



Last additions:
How to make X listen on port 6000

How to make X listen on port 6000

words:

34

views:

48180

userrating:

average rating: 1.5 (4 votes) (1=very good 6=terrible)


May, 25th 2007:
April, 26th 2007:
Apr, 10th. 2007:
Druckversion . pdf icon
You are here: Tutorials per portage category->app-admin->amanda

Amanda - Creating Successful Backups

by Gavin Henry

Amanda, the Advanced Maryland Automatic Network Disk Archiver;

is a backup system that allows the administrator of a LAN to set up a single master backup server to back up multiple hosts to a single large capacity tape drive. Amanda uses native dump and/or GNU tar facilities and can back up a large number of workstations running multiple versions of Unix. Recent versions can also use SAMBA to back up Microsoft Windows hosts.

NOTICE: This is an updated and amended version for Fedora, using Xander Harkness' (http://www.harkness.co.uk/) original article with his permission.

I was searching a few weeks ago for a good backup program and tried Arkeia and hated it, as it was very complicated. Xander shared my feelings, as indicated on his site, and I thought I would use his excellent article, but update it for this.

The installation and configuration can be done over a few evenings or mornings for the typical system administrator or home user, or in one day, if you have time.

NOTE: This tutorial assumes you have a working and installed SCSI tape drive.

Installation - Server Side

Download packages the rpm packages (for server and clients, issue rpm -ivh *.rpm in the appropriate directory.):

amanda-2.4.4p1-1.i386.rpm for the server and client.

amanda-client-2.4.4p1-1.i386.rpm for the client only.

amanda-server-2.4.4p1-1.i386.rpm for the server only.

or simply:

apt-get install amanda amanda-client and

apt-get install amanda amanda-server
or use the the package management tool for your distro (emerge, yum, rpm, ...)

Now onto the configuration;

Step 1

Run the command:

amtapetype -f /dev/nst0
(this is not a spelling mistake).
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 tapetype 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 tapetype program"
length 9922 mbytes
filemark 0 kbytes
speed 973 kps
}
NOTE: The comment and typetype can be anything you like. 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 SONY-DSS-4. 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.

There are three amanda packages available for Fedora, 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. 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.

Step 2

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

org - This is in the email subject to differentiate between different backups.

mailto - This should be set to the administrator's email addresses. Multiple addresses may be entered separated by spaces.

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.

tapedev /dev/null - this should be changed to tapedev /dev/nst0, as this is the non-rewinding device for Linux.

Step 3

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:

Before this step make sure, as root, you change (on the server and on the client) disable = no in /etc/xinetd.d/amanda and /etc/xinetd.d/amandaidx (on the client only) then service xinetd restart. Issue a netstat -ul | grep amanda and you should have

udp        0      0 *:amanda                *:*

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 Step 3 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"

Step 4

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.

Step 5

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.

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:

/var/lib/amanda/.amandahosts

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:

client1.domain.co.uk /etc comp-root-tar

client1.domain.co.uk /home comp-root-tar

client2.domain.co.uk hda1 comp-root-tar

NOTE: 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.

Windows systems:

To backup windows systems you may wish to ensure that you have the latest version of Amanda available.

These systems are also entered into the disklist file as follows:

sambaserver.domain.com //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

NOTE: I had loads of trouble getting xinetd.d to make amanda to listen on the server, this was due to the following line being missing in /etc/xinetd.conf

includedir /etc/xinetd.d

I hope everything is straight forward for you. Please e-mail me below if you have any troubles :-)

Well, that's it for now. For any comments or corrections, please e-mail me.

Keep an eye out for "Amanda - Restoring Successful Backups".


rate this article:
current rating: average rating: 1.3 (3 votes) (1=very good 6=terrible)
Your rating:
Very good (1) Good (2) ok (3) average (4) bad (5) terrible (6)

back



Other free services
toURL.org
Shorten long
URLs to short
links like
http://tourl.org/2
tourl.org
.
Reverse DNS lookup
Find out which hostname(s)
resolve to a
given IP or other hostnames for the server
www.reversednslookup.org

New Packages

- as rdf newsfeed
- as rss newsfeed
- as Atom newsfeed
2019-08-20
acpid - 2.0.32
Ebuild name:

sys-power/acpid-2.0.32

Description

Daemon for Advanced Configuration and Power Interface

Added to portage

2019-08-20

angband - 4.2.0
Ebuild name:

games-roguelike/angband-4.2.0

Description

A roguelike dungeon exploration game based on the books of J.R.R. Tol

Added to portage

2019-08-20

argus-clients - 3.0.8.2-r3
Ebuild name:

net-analyzer/argus-clients-3.0.8.2-r3

Description

Clients for net-analyzer/argus

Added to portage

2019-08-20

arping - 2.20
Ebuild name:

net-analyzer/arping-2.20

Description

A utility to see if a specific IP address is taken and what MAC address ow

Added to portage

2019-08-20

broadcom-sta - 6.30.223.271-r5
Ebuild name:

net-wireless/broadcom-sta-6.30.223.271-r5

Description

Broadcom's IEEE 802.11a/b/g/n hybrid Linux device driver

Added to portage

2019-08-20

cacti-spine - 99999
Ebuild name:

net-analyzer/cacti-spine-99999

Description

Spine is a fast poller for Cacti (formerly known as Cactid)

Added to portage

2019-08-20

debhelper - 12.5.3
Ebuild name:

dev-util/debhelper-12.5.3

Description

Collection of programs that can be used to automate common tasks in debia

Added to portage

2019-08-20

etcd - 3.3.15
Ebuild name:

dev-db/etcd-3.3.15

Description

Highly-available key value store for shared configuration and service discovery

Added to portage

2019-08-20

intel-microcode - 20190618_p20190819
Ebuild name:

sys-firmware/intel-microcode-20190618_p20190819

Description

Intel IA32/IA64 microcode update data

Added to portage

2019-08-20

ipsumdump - 1.86-r1
Ebuild name:

net-analyzer/ipsumdump-1.86-r1

Description

Simple TCP/IP Dump summarizer/analyzer

Added to portage

2019-08-20

kodi-audiodecoder-modplug - 2.0.1
Ebuild name:

media-plugins/kodi-audiodecoder-modplug-2.0.1

Description

Modplug decoder addon for Kodi

Added to portage

2019-08-20

kodi-peripheral-joystick - 1.4.8
Ebuild name:

media-plugins/kodi-peripheral-joystick-1.4.8

Description

Libretro compatibility layer for the Kodi Game API

Added to portage

2019-08-20

kodi-pvr-iptvsimple - 3.6.0
Ebuild name:

media-plugins/kodi-pvr-iptvsimple-3.6.0

Description

Kodi's IPTVSimple client addon

Added to portage

2019-08-20

libgdiplus - 6.0.2
Ebuild name:

dev-dotnet/libgdiplus-6.0.2

Description

Library for using System.Drawing with Mono

Added to portage

2019-08-20

libmissing - 1.0.0-r1
Ebuild name:

dev-libs/libmissing-1.0.0-r1

Description

Library with missing functions based on GNUlib

Added to portage

2019-08-20

libsass - 3.6.1
Ebuild name:

dev-libs/libsass-3.6.1

Description

A C/C++ implementation of a Sass CSS compiler

Added to portage

2019-08-20

libtrace - 4.0.9_p1-r1
Ebuild name:

net-libs/libtrace-4.0.9_p1-r1

Description

A library and tools for trace processing

Added to portage

2019-08-20

magit-popup - 2.12.4
Ebuild name:

app-emacs/magit-popup-2.12.4

Description

Define prefix-infix-suffix command combos

Added to portage

2019-08-20

msi-keyboard - 1.0
Ebuild name:

app-laptop/msi-keyboard-1.0

Description

Control backlight of MSI laptop keyboards

Added to portage

2019-08-20

nDPI - 2.8
Ebuild name:

net-libs/nDPI-2.8

Description

Open Source Deep Packet Inspection Software Toolkit

Added to portage

2019-08-20

nagios-core - 4.4.4-r1
Ebuild name:

net-analyzer/nagios-core-4.4.4-r1

Description

Nagios core - monitoring daemon, web GUI, and documentation

Added to portage

2019-08-20

net-snmp - 5.8-r2
Ebuild name:

net-analyzer/net-snmp-5.8-r2

Description

Software for generating and retrieving SNMP data

Added to portage

2019-08-20

ntpclient - 2018.244-r1
Ebuild name:

net-misc/ntpclient-2018.244-r1

Description

A NTP (RFC-1305 and RFC-4330) client for unix-alike systems

Added to portage

2019-08-20

sysdig - 0.26.3
Ebuild name:

dev-util/sysdig-0.26.3

Description

A system exploration and troubleshooting tool

Added to portage

2019-08-20

vala - 0.36.20
Ebuild name:

dev-lang/vala-0.36.20

Description

Compiler for the GObject type system

Added to portage

2019-08-20

vala - 0.40.16
Ebuild name:

dev-lang/vala-0.40.16

Description

Compiler for the GObject type system

Added to portage

2019-08-20

vala - 0.45.91
Ebuild name:

dev-lang/vala-0.45.91

Description

Compiler for the GObject type system

Added to portage

2019-08-20

vala-common - 0.45.91
Ebuild name:

dev-libs/vala-common-0.45.91

Description

Build infrastructure for packages that use Vala

Added to portage

2019-08-20

vnstat - 2.4
Ebuild name:

net-analyzer/vnstat-2.4

Description

Console-based network traffic monitor that keeps statistics of network usag

Added to portage

2019-08-20

xapian - 1.4.12
Ebuild name:

dev-libs/xapian-1.4.12

Description

Xapian Probabilistic Information Retrieval library

Added to portage

2019-08-20

xapian-bindings - 1.4.12
Ebuild name:

dev-libs/xapian-bindings-1.4.12

Description

SWIG and JNI bindings for Xapian

Added to portage

2019-08-20

xapian-omega - 1.4.12
Ebuild name:

app-text/xapian-omega-1.4.12

Description

An application built on Xapian, consisting of indexers and a CGI searc

Added to portage

2019-08-20

xfsprogs - 5.2.0
Ebuild name:

sys-fs/xfsprogs-5.2.0

Description

xfs filesystem utilities

Added to portage

2019-08-20

2019-08-19
dav1d - 0.4.0
Ebuild name:

media-libs/dav1d-0.4.0

Description

dav1d is an AV1 Decoder

Added to portage

2019-08-19

elasticsearch-py - 6.4.0
Ebuild name:

dev-python/elasticsearch-py-6.4.0

Description

Official Python low-level client for Elasticsearch

Added to portage

2019-08-19

elasticsearch-py - 7.0.2
Ebuild name:

dev-python/elasticsearch-py-7.0.2

Description

Official Python low-level client for Elasticsearch

Added to portage

2019-08-19

ffmpeg - 4.2
Ebuild name:

media-video/ffmpeg-4.2

Description

Complete solution to record, convert and stream audio and video. Includes li

Added to portage

2019-08-19

genkernel - 4.0.0_beta13
Ebuild name:

sys-kernel/genkernel-4.0.0_beta13

Description

Gentoo automatic kernel building scripts

Added to portage

2019-08-19

gentoolkit - 0.4.6
Ebuild name:

app-portage/gentoolkit-0.4.6

Description

Collection of administration scripts for Gentoo

Added to portage

2019-08-19

git - 2.23.0
Ebuild name:

dev-vcs/git-2.23.0

Description

stupid content tracker distributed VCS designed for speed and efficiency

Added to portage

2019-08-19

git-sources - 5.3_rc5
Ebuild name:

sys-kernel/git-sources-5.3_rc5

Description

The very latest -git version of the Linux kernel

Added to portage

2019-08-19

gnome-shell-extension-dash-to-panel - 21
Ebuild name:

gnome-extra/gnome-shell-extension-dash-to-panel-21

Description

An icon taskbar for the Gnome Shell

Added to portage

2019-08-19

gnutls - 3.6.9
Ebuild name:

net-libs/gnutls-3.6.9

Description

A TLS 1.2 and SSL 3.0 implementation for the GNU project

Added to portage

2019-08-19

gtk-engines - 2.20.2-r2
Ebuild name:

x11-themes/gtk-engines-2.20.2-r2

Description

GTK+2 standard engines and themes

Added to portage

2019-08-19

gtk-engines-adwaita - 3.22.3
Ebuild name:

x11-themes/gtk-engines-adwaita-3.22.3

Description

Adwaita GTK+2 theme engine

Added to portage

2019-08-19

gtk-engines-adwaita - 3.28
Ebuild name:

x11-themes/gtk-engines-adwaita-3.28

Description

Adwaita GTK+2 theme engine

Added to portage

2019-08-19

hwids - 20190818
Ebuild name:

sys-apps/hwids-20190818

Description

Hardware (PCI, USB, OUI, IAB) IDs databases

Added to portage

2019-08-19

iml - 1.0.5
Ebuild name:

sci-libs/iml-1.0.5

Description

Integer Matrix Library

Added to portage

2019-08-19

ipmiutil - 3.1.4
Ebuild name:

sys-apps/ipmiutil-3.1.4

Description

IPMI Management Utilities

Added to portage

2019-08-19

kube-apiserver - 1.13.10
Ebuild name:

sys-cluster/kube-apiserver-1.13.10

Description

Kubernetes API server

Added to portage

2019-08-19

kube-apiserver - 1.14.6
Ebuild name:

sys-cluster/kube-apiserver-1.14.6

Description

Kubernetes API server

Added to portage

2019-08-19

kube-apiserver - 1.15.3
Ebuild name:

sys-cluster/kube-apiserver-1.15.3

Description

Kubernetes API server

Added to portage

2019-08-19

kube-controller-manager - 1.13.10
Ebuild name:

sys-cluster/kube-controller-manager-1.13.10

Description

Kubernetes Controller Manager

Added to portage

2019-08-19

kube-controller-manager - 1.14.6
Ebuild name:

sys-cluster/kube-controller-manager-1.14.6

Description

Kubernetes Controller Manager

Added to portage

2019-08-19

kube-controller-manager - 1.15.3
Ebuild name:

sys-cluster/kube-controller-manager-1.15.3

Description

Kubernetes Controller Manager

Added to portage

2019-08-19

kube-proxy - 1.13.10
Ebuild name:

sys-cluster/kube-proxy-1.13.10

Description

Kubernetes Proxy service

Added to portage

2019-08-19

kube-proxy - 1.14.6
Ebuild name:

sys-cluster/kube-proxy-1.14.6

Description

Kubernetes Proxy service

Added to portage

2019-08-19

kube-proxy - 1.15.3
Ebuild name:

sys-cluster/kube-proxy-1.15.3

Description

Kubernetes Proxy service

Added to portage

2019-08-19

kube-scheduler - 1.13.10
Ebuild name:

sys-cluster/kube-scheduler-1.13.10

Description

Kubernetes Scheduler

Added to portage

2019-08-19

kube-scheduler - 1.14.6
Ebuild name:

sys-cluster/kube-scheduler-1.14.6

Description

Kubernetes Scheduler

Added to portage

2019-08-19

kube-scheduler - 1.15.3
Ebuild name:

sys-cluster/kube-scheduler-1.15.3

Description

Kubernetes Scheduler

Added to portage

2019-08-19

kubeadm - 1.13.10
Ebuild name:

sys-cluster/kubeadm-1.13.10

Description

CLI to Easily bootstrap a secure Kubernetes cluster

Added to portage

2019-08-19

kubeadm - 1.14.6
Ebuild name:

sys-cluster/kubeadm-1.14.6

Description

CLI to Easily bootstrap a secure Kubernetes cluster

Added to portage

2019-08-19

kubeadm - 1.15.3
Ebuild name:

sys-cluster/kubeadm-1.15.3

Description

CLI to Easily bootstrap a secure Kubernetes cluster

Added to portage

2019-08-19

kubectl - 1.13.10
Ebuild name:

sys-cluster/kubectl-1.13.10

Description

CLI to run commands against Kubernetes clusters

Added to portage

2019-08-19

kubectl - 1.14.6
Ebuild name:

sys-cluster/kubectl-1.14.6

Description

CLI to run commands against Kubernetes clusters

Added to portage

2019-08-19

kubectl - 1.15.3
Ebuild name:

sys-cluster/kubectl-1.15.3

Description

CLI to run commands against Kubernetes clusters

Added to portage

2019-08-19

kubelet - 1.13.10
Ebuild name:

sys-cluster/kubelet-1.13.10

Description

Kubernetes Node Agent

Added to portage

2019-08-19

kubelet - 1.14.6
Ebuild name:

sys-cluster/kubelet-1.14.6

Description

Kubernetes Node Agent

Added to portage

2019-08-19

kubelet - 1.15.3
Ebuild name:

sys-cluster/kubelet-1.15.3

Description

Kubernetes Node Agent

Added to portage

2019-08-19

libassuan - 2.5.3
Ebuild name:

dev-libs/libassuan-2.5.3

Description

IPC library used by GnuPG and GPGME

Added to portage

2019-08-19

libbsd - 0.10.0
Ebuild name:

dev-libs/libbsd-0.10.0

Description

An library to provide useful functions commonly found on BSD systems

Added to portage

2019-08-19

liblouis - 3.10.0
Ebuild name:

dev-libs/liblouis-3.10.0

Description

An open-source braille translator and back-translator

Added to portage

2019-08-19

libtasn1 - 4.14
Ebuild name:

dev-libs/libtasn1-4.14

Description

ASN.1 library

Added to portage

2019-08-19

lxsession - 0.5.4-r1
Ebuild name:

lxde-base/lxsession-0.5.4-r1

Description

LXDE session manager

Added to portage

2019-08-19

mixxx - 2.2.2
Ebuild name:

media-sound/mixxx-2.2.2

Description

Advanced Digital DJ tool based on Qt

Added to portage

2019-08-19

nessus-agent-bin - 7.4.2
Ebuild name:

net-analyzer/nessus-agent-bin-7.4.2

Description

A remote security scanner for Linux - agent component

Added to portage

2019-08-19

nufw - 2.2.22-r3
Ebuild name:

net-firewall/nufw-2.2.22-r3

Description

An enterprise grade authenticating firewall based on netfilter

Added to portage

2019-08-19

pgf - 3.1.4-r1
Ebuild name:

dev-tex/pgf-3.1.4-r1

Description

The TeX Portable Graphic Format

Added to portage

2019-08-19

pgf - 3.1.4b-r1
Ebuild name:

dev-tex/pgf-3.1.4b-r1

Description

The TeX Portable Graphic Format

Added to portage

2019-08-19

pigiarniq - 2
Ebuild name:

media-fonts/pigiarniq-2

Description

Nunavut's official Inuktitut font

Added to portage

2019-08-19

portage - 2.3.72
Ebuild name:

sys-apps/portage-2.3.72

Description

Portage is the package management and distribution system for Gentoo

Added to portage

2019-08-19

prometheus - 2.12.0
Ebuild name:

app-metrics/prometheus-2.12.0

Description

Prometheus monitoring system and time series database

Added to portage

2019-08-19

protobuf-c - 1.3.2
Ebuild name:

dev-libs/protobuf-c-1.3.2

Description

Protocol Buffers implementation in C

Added to portage

2019-08-19

tomcat - 9.0.24
Ebuild name:

www-servers/tomcat-9.0.24

Description

Tomcat Servlet-4.0/JSP-2.4?/EL-3.1?/WebSocket-1.2?/JASPIC-1.1 Container

Added to portage

2019-08-19

tomcat-servlet-api - 9.0.24
Ebuild name:

dev-java/tomcat-servlet-api-9.0.24

Description

Tomcat's Servlet API 4.0/JSP API 2.4?/EL API 3.1? implementation

Added to portage

2019-08-19

vivaldi-snapshot - 2.7.1628.28_p1
Ebuild name:

www-client/vivaldi-snapshot-2.7.1628.28_p1

Description

A browser for our friends

Added to portage

2019-08-19

wesnoth - 1.15.0
Ebuild name:

games-strategy/wesnoth-1.15.0

Description

Battle for Wesnoth - A fantasy turn-based strategy game

Added to portage

2019-08-19

whois - 5.5.1
Ebuild name:

net-misc/whois-5.5.1

Description

improved Whois Client

Added to portage

2019-08-19

rdf newsfeed | rss newsfeed | Atom newsfeed
- Powered by LeopardCMS - Running on Gentoo -
Copyright 2004-2018 Sascha Nitsch Unternehmensberatung UG(haftungsbeschänkt)
Valid XHTML1.1 : Valid CSS : buttonmaker
- Level Triple-A Conformance to Web Content Accessibility Guidelines 1.0 -
- Copyright and legal notices -
Time to create this page: 57.1 ms