--- title: "Cómo configurar Amanda en Ubuntu 24.04 con cintas virtuales" description: "Configura Amanda en Ubuntu 24.04 con cintas virtuales en disco: servidor, cliente, disklist, copias programadas con cron y restauración con amrecover." category: "Almacenamiento y Copia de Seguridad Avanzada" language: es source: https://cubepath.com/es/docs/almacenamiento-y-copia-de-seguridad-avanzada/configuracion-del-sistema-de-copia-de-seguridad-amanda updated: 2026-09-25 --- # Cómo configurar Amanda en Ubuntu 24.04 con cintas virtuales Amanda (Advanced Maryland Automatic Network Disk Archiver) es un sistema de copias de seguridad en red que centraliza en un servidor las copias de muchos clientes usando herramientas estándar como GNU tar. Su planificador reparte las copias completas a lo largo de un ciclo para que cada ejecución tenga un tamaño parecido, y guarda los datos en cintas reales o en cintas virtuales sobre disco. En este tutorial configurarás un servidor Amanda 3.5 en Ubuntu 24.04 con cintas virtuales, respaldarás el propio servidor y un cliente remoto, programarás las copias y restaurarás archivos con `amrecover`. > Nota: Amanda sigue empaquetado en Ubuntu y funciona bien, pero su desarrollo comunitario es muy lento. Si partes de cero y no necesitas su modelo de planificación, valora también Bacula o herramientas como restic y BorgBackup. ## Requisitos previos - Un servidor con Ubuntu 24.04 LTS que hará de servidor Amanda (por ejemplo un VPS de CubePath), con espacio en disco para las cintas virtuales y el disco de retención (holding disk). - Opcionalmente, un segundo servidor Ubuntu 24.04 como cliente remoto. - Un usuario no root con privilegios `sudo` en ambos. - Resolución de nombres entre servidor y cliente (DNS o `/etc/hosts`). Amanda autentica por nombre de host. En la guía, el servidor se llama `backup01.example.com` y el cliente `web01.example.com`. La configuración de copias se llamará `DailySet1`. ## Cómo funciona Amanda en Ubuntu Conviene conocer tres detalles del empaquetado de Ubuntu antes de empezar: - Amanda se ejecuta con el usuario de sistema **`backup`** (UID 34), cuyo directorio personal es `/var/backups`. - Los permisos de acceso entre máquinas se definen en **`/etc/amandahosts`** (enlazado como `/var/backups/.amandahosts`). - El demonio de cliente `amandad` lo lanza **`inetd`** en el puerto TCP 10080 con autenticación `bsdtcp`. El paquete añade la entrada a `/etc/inetd.conf` automáticamente. ## Paso 1: Instalar el servidor Amanda En `backup01`, instala el servidor y el cliente (el servidor también se respaldará a sí mismo): ```bash sudo apt update sudo apt install amanda-server amanda-client ``` La instalación incluye `openbsd-inetd`. Comprueba que el puerto de Amanda está escuchando: ```bash sudo ss -tlnp | grep 10080 ``` ```output LISTEN 0 128 0.0.0.0:10080 0.0.0.0:* users:(("inetd",pid=1812,fd=5)) ``` ## Paso 2: Crear los directorios de trabajo Amanda necesita un directorio para las cintas virtuales, un disco de retención donde los clientes vuelcan los datos antes de escribirlos en cinta, y un directorio para el estado de cada configuración. Todos deben pertenecer al usuario `backup`: ```bash sudo mkdir -p /srv/amanda/vtapes/DailySet1 /srv/amanda/holding sudo mkdir -p /var/lib/amanda/DailySet1/index /var/lib/amanda/gnutar-lists sudo mkdir -p /etc/amanda/DailySet1 sudo chown -R backup:backup /srv/amanda /var/lib/amanda/DailySet1 /var/lib/amanda/gnutar-lists /etc/amanda/DailySet1 ``` `/var/lib/amanda/gnutar-lists` es donde GNU tar guarda el estado de las copias incrementales; en un cliente remoto también hará falta crearlo. ## Paso 3: Escribir amanda.conf Crea el archivo principal de la configuración: ```bash sudo -u backup nano /etc/amanda/DailySet1/amanda.conf ``` Añade este contenido: ```text org "DailySet1" mailto "root" dumpuser "backup" inparallel 4 netusage 100000 Kbps dumpcycle 7 days runspercycle 7 tapecycle 8 tapes runtapes 1 infofile "/var/lib/amanda/DailySet1/curinfo" logdir "/var/lib/amanda/DailySet1" indexdir "/var/lib/amanda/DailySet1/index" define changer vtapes { tpchanger "chg-disk:/srv/amanda/vtapes/DailySet1" property "num-slot" "10" property "auto-create-slot" "yes" } tpchanger "vtapes" define tapetype VTAPE { comment "Cinta virtual en disco" length 20 gbytes } tapetype "VTAPE" labelstr "^DailySet1-[0-9][0-9]*$" autolabel "DailySet1-%%%" empty holdingdisk hd1 { directory "/srv/amanda/holding" use 10 gbytes } define application-tool app_amgtar { plugin "amgtar" property "GNUTAR-PATH" "/usr/bin/tar" } define dumptype gtar-comp { program "APPLICATION" application "app_amgtar" auth "bsdtcp" compress client fast index yes } ``` Los valores más importantes: - **`dumpcycle 7 days` y `runspercycle 7`**: cada sistema de archivos recibe al menos una copia completa por semana y hay una ejecución diaria. El planificador decide qué día toca completa y qué días incremental para equilibrar el volumen. - **`tapecycle 8 tapes`**: número de cintas en rotación. Debe ser mayor que `runspercycle` para que siempre haya al menos una completa anterior disponible. - **`chg-disk`** con `auto-create-slot`: crea las ranuras de cinta virtual como subdirectorios de `/srv/amanda/vtapes/DailySet1`. - **`autolabel`**: etiqueta automáticamente las cintas vacías como `DailySet1-001`, `DailySet1-002`, etc. - **`gtar-comp`**: tipo de volcado que usa GNU tar mediante `amgtar`, comprime en el cliente y guarda un índice de archivos para poder restaurar selectivamente. ## Paso 4: Definir la lista de discos `disklist` indica qué directorios de qué máquinas se respaldan y con qué tipo de volcado. El formato es `host directorio dumptype`: ```bash sudo -u backup nano /etc/amanda/DailySet1/disklist ``` ```text localhost /etc gtar-comp localhost /home gtar-comp localhost /var/www gtar-comp ``` Autoriza al usuario `backup` del propio servidor a lanzar copias y a `root` a restaurar. Edita `/etc/amandahosts`: ```bash sudo nano /etc/amandahosts ``` ```text localhost backup amdump localhost root amindexd amidxtaped ``` La primera línea permite al servidor ejecutar volcados contra el cliente local. La segunda permite a `root` usar `amrecover` contra los servicios de índice y cinta. Por último, configura el cliente local para que `amrecover` sepa a qué servidor preguntar: ```bash sudo nano /etc/amanda/amanda-client.conf ``` ```text conf "DailySet1" index_server "localhost" tape_server "localhost" auth "bsdtcp" ``` ## Paso 5: Comprobar la configuración con amcheck `amcheck` valida el servidor, las cintas y cada cliente de la lista. Ejecútalo siempre como `backup`: ```bash sudo -u backup amcheck DailySet1 ``` ```output Amanda Tape Server Host Check ----------------------------- Holding disk /srv/amanda/holding: 48 GB disk space available, using 10 GB slot 1: contains an empty volume Will write label 'DailySet1-001' to new volume in slot 1. NOTE: skipping tape-writable test NOTE: host info dir /var/lib/amanda/DailySet1/curinfo/localhost does not exist NOTE: it will be created on the next run. NOTE: index dir /var/lib/amanda/DailySet1/index/localhost does not exist NOTE: it will be created on the next run. Server check took 0.412 seconds Amanda Backup Client Hosts Check -------------------------------- Client check: 1 host checked in 2.108 seconds. 0 problems found. ``` Las notas sobre directorios que no existen son normales antes de la primera copia. Lo importante es `0 problems found`. ## Paso 6: Ejecutar la primera copia Lanza `amdump` como `backup`. La primera ejecución hace copia completa de todo: ```bash sudo -u backup amdump DailySet1 ``` El comando no muestra progreso y termina cuando acaba la copia. Mientras se ejecuta, puedes seguir el estado desde otra terminal: ```bash sudo -u backup amstatus DailySet1 ``` Al terminar, Amanda envía un informe a `root` por correo. También puedes consultar el historial de copias de un disco: ```bash sudo -u backup amadmin DailySet1 find localhost /etc ``` ```output date host disk lv storage pool tape or file file part status 2026-09-25 01:30:02 localhost /etc 0 DailySet1 DailySet1 DailySet1-001 1 1/1 OK ``` El nivel `0` es una copia completa. Las siguientes ejecuciones mostrarán niveles `1` o superiores (incrementales) y, dentro de cada ciclo, una nueva completa. ## Paso 7: Programar las copias Amanda no tiene demonio propio de planificación; se programa con cron en la cuenta de `backup`. Edita su crontab: ```bash sudo crontab -u backup -e ``` Añade estas dos líneas: ```text 0 16 * * * /usr/sbin/amcheck -m DailySet1 30 1 * * * /usr/sbin/amdump DailySet1 ``` A las 16:00 `amcheck -m` revisa la configuración y solo envía correo si encuentra problemas, dejando margen para corregirlos antes de la copia de la 01:30. Asegúrate de que el correo de `root` llega a un buzón que alguien lea, por ejemplo con un alias en `/etc/aliases`. ## Paso 8: Restaurar archivos con amrecover `amrecover` se ejecuta como `root` en el cliente y restaura en el directorio actual. Restaura `/etc/ssh` en una carpeta temporal: ```bash sudo mkdir -p /tmp/amanda-restore cd /tmp/amanda-restore sudo amrecover DailySet1 ``` Dentro de `amrecover`: ```text sethost localhost setdisk /etc ls add ssh extract ``` `extract` muestra la cinta virtual que necesita y pregunta si continuar; responde `Y` en las dos confirmaciones. Después sal con `quit` y compara: ```bash sudo diff -r /etc/ssh /tmp/amanda-restore/ssh && echo "Restauración correcta" ``` ```output Restauración correcta ``` Para restaurar una fecha concreta, usa `setdate AAAA-MM-DD` antes de `add`. ## Paso 9: Añadir un cliente remoto En `web01`, instala solo el cliente y crea el directorio de estado de GNU tar: ```bash sudo apt update sudo apt install amanda-client sudo mkdir -p /var/lib/amanda/gnutar-lists sudo chown backup:backup /var/lib/amanda/gnutar-lists ``` Autoriza al servidor en `/etc/amandahosts` del cliente: ```bash sudo nano /etc/amandahosts ``` ```text backup01.example.com backup amdump ``` Permite el puerto 10080 solo desde el servidor: ```bash sudo ufw allow from backup01_ip to any port 10080 proto tcp ``` En el servidor, añade el cliente a `/etc/amanda/DailySet1/disklist`: ```text web01.example.com /etc gtar-comp web01.example.com /var/www gtar-comp ``` Comprueba de nuevo la configuración desde el servidor: ```bash sudo -u backup amcheck DailySet1 ``` ```output Client check: 2 hosts checked in 2.531 seconds. 0 problems found. ``` La próxima ejecución de `amdump` incluirá a `web01`. Si quieres poder restaurar desde el propio cliente con `amrecover`, añade `web01.example.com root amindexd amidxtaped` a `/etc/amandahosts` del servidor, crea `/etc/amanda/amanda-client.conf` en el cliente apuntando `index_server` y `tape_server` a `backup01.example.com`, y abre el puerto 10080 del servidor para el cliente. ## Solución de problemas **`amcheck` devuelve `access as backup not allowed from ...`.** La línea de `/etc/amandahosts` del cliente no coincide con el nombre con el que llega el servidor. Amanda resuelve la IP de origen por DNS inverso, así que el nombre de la línea debe ser el que devuelve esa resolución. Revisa también que el archivo tenga permisos `600` y pertenezca a `backup`. **`selfcheck request failed: Connection refused`.** `inetd` no está escuchando en el cliente o el cortafuegos bloquea el 10080. Comprueba con `sudo ss -tlnp | grep 10080` y `sudo ufw status`. **`No acceptable volumes found` o `taper: no-tape`.** No hay cintas virtuales disponibles: revisa que `/srv/amanda/vtapes/DailySet1` pertenezca a `backup` y que `autolabel` esté presente. Si una ejecución no pudo escribir en cinta, los datos quedan en el disco de retención y puedes pasarlos con `sudo -u backup amflush DailySet1`. **La copia de un disco falla con errores de tar.** Consulta los registros de la ejecución en `/var/lib/amanda/DailySet1/` y los de depuración del cliente en `/var/log/amanda/`. ## Conclusión Tienes un servidor Amanda en Ubuntu 24.04 que respalda cada noche el propio servidor y un cliente remoto sobre cintas virtuales, con un ciclo semanal de copias completas repartidas, comprobación diaria con aviso por correo y restauración verificada con `amrecover`. Como siguientes pasos, puedes cifrar los volcados con el dumptype `encrypt-fast` de las plantillas en `/usr/share/amanda/template.d/`, copiar las cintas virtuales a un segundo destino con `amvault` o sincronizar `/srv/amanda/vtapes` a un almacenamiento externo.