108.4 Gestionar impresoras e impresion - Teoria
CUPS (Common UNIX Printing System)
Descripcion general
- Sistema de impresion estandar en Linux y macOS
- Basado en el protocolo IPP (Internet Printing Protocol)
- Proporciona una interfaz web de administracion
- Compatible con comandos legacy de LPD (lpr, lpq, lprm)
- Demonio principal:
cupsd
Interfaz web
- Accesible en
http://localhost:631 - Permite administrar impresoras, trabajos y configuracion
- Requiere autenticacion para operaciones administrativas
Archivos de configuracion
/etc/cups/cupsd.conf
Configuracion principal del demonio CUPS.
# Puerto de escucha
Listen localhost:631
Listen /run/cups/cups.sock
# Registro
LogLevel warn
# Acceso a la interfaz web
<Location />
Order allow,deny
Allow localhost
</Location>
<Location /admin>
Order allow,deny
Allow localhost
</Location>
# Compartir impresoras en la red
Browsing On
BrowseLocalProtocols dnssd
/etc/cups/printers.conf
Contiene la definicion de las impresoras configuradas. No editar manualmente mientras CUPS este en ejecucion.
<Printer MiImpresora>
UUID urn:uuid:xxxx-xxxx
Info HP LaserJet
Location Oficina
DeviceURI ipp://192.168.1.50/ipp/print
State Idle
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
</Printer>
Archivos PPD (PostScript Printer Description)
- Describen las capacidades de cada impresora
- Se almacenan en
/etc/cups/ppd/ - Contienen opciones como tamano de papel, resolucion, bandejas
- Un archivo PPD por cada impresora configurada
Administracion de impresoras: lpadmin
Agregar una impresora
# Agregar impresora local USB
lpadmin -p MiImpresora -E -v usb://HP/LaserJet -m everywhere
# Agregar impresora de red IPP
lpadmin -p Impresora-Red -E -v ipp://192.168.1.50/ipp/print -m everywhere
# Agregar con PPD especifico
lpadmin -p MiImpresora -E -v socket://192.168.1.50:9100 -P /ruta/al/archivo.ppd
# Establecer como predeterminada
lpadmin -d MiImpresoraOpciones de lpadmin
| Opcion | Descripcion |
|---|---|
-p nombre | Nombre de la impresora |
-E | Habilitar la impresora y aceptar trabajos |
-v URI | URI del dispositivo |
-m modelo | Modelo/driver a usar (everywhere para IPP Everywhere) |
-P archivo.ppd | Archivo PPD a usar |
-d nombre | Establecer como impresora predeterminada |
-x nombre | Eliminar una impresora |
URIs de dispositivos comunes
| Tipo | Formato URI |
|---|---|
| USB | usb://fabricante/modelo |
| IPP (red) | ipp://host/ipp/print |
| Socket/JetDirect | socket://host:9100 |
| LPD | lpd://host/cola |
| Paralelo | parallel:/dev/lp0 |
Comando lpinfo
Descubre impresoras y drivers disponibles.
lpinfo -v # Listar URIs de dispositivos disponibles
lpinfo -m # Listar modelos/drivers disponibles
lpinfo -m | grep -i hp # Buscar drivers de HPImprimir archivos
lp (System V style)
lp archivo.txt # Imprimir en impresora predeterminada
lp -d MiImpresora archivo.txt # Imprimir en impresora especifica
lp -n 3 archivo.txt # Imprimir 3 copias
lp -o landscape archivo.pdf # Imprimir en horizontal
lp -o media=A4 archivo.pdf # Tamano de papel A4
lp -o sides=two-sided-long-edge archivo.pdf # Doble caralpr (BSD style)
lpr archivo.txt # Imprimir en impresora predeterminada
lpr -P MiImpresora archivo.txt # Imprimir en impresora especifica
lpr -# 3 archivo.txt # Imprimir 3 copias
cat archivo.txt | lpr # Imprimir desde stdinDiferencias entre lp y lpr
| Caracteristica | lp (System V) | lpr (BSD) |
|---|---|---|
| Seleccionar impresora | -d nombre | -P nombre |
| Numero de copias | -n 3 | -# 3 |
| Origen | System V Unix | BSD Unix |
Gestionar la cola de impresion
lpq (ver cola - BSD style)
lpq # Ver cola de impresora predeterminada
lpq -P MiImpresora # Ver cola de impresora especifica
lpq -a # Ver todas las colaslpstat (ver estado - System V style)
lpstat # Estado de trabajos del usuario
lpstat -a # Impresoras que aceptan trabajos
lpstat -p # Estado de las impresoras
lpstat -p -d # Estado e impresora predeterminada
lpstat -t # Estado completo del sistema de impresion
lpstat -o # Trabajos en todas las colas
lpstat -s # Resumen de impresoras y URIsCancelar trabajos
cancel (System V style)
cancel MiImpresora-123 # Cancelar trabajo por ID
cancel -a # Cancelar todos los trabajos
cancel -a MiImpresora # Cancelar todos los trabajos de una impresoralprm (BSD style)
lprm 123 # Cancelar trabajo por numero
lprm -P MiImpresora 123 # Cancelar de impresora especifica
lprm - # Cancelar todos los trabajos del usuarioGestion del estado de impresoras y colas
cupsenable / cupsdisable - Habilitar/deshabilitar impresoras
Controlan si la impresora procesa los trabajos de su cola.
# Deshabilitar la impresora (deja de imprimir, pero sigue aceptando trabajos)
cupsdisable MiImpresora
# Deshabilitar con motivo
cupsdisable -r "En mantenimiento" MiImpresora
# Habilitar la impresora (reanuda la impresion)
cupsenable MiImpresoracupsaccept / cupsreject - Aceptar/rechazar trabajos
Controlan si la cola acepta nuevos trabajos.
# Rechazar nuevos trabajos (la cola no acepta mas trabajos)
cupsreject MiImpresora
# Rechazar con motivo
cupsreject -r "Fuera de servicio" MiImpresora
# Aceptar nuevos trabajos
cupsaccept MiImpresoraDiferencia clave:
cupsenable/cupsdisable: Controla si la impresora procesa los trabajos existentescupsaccept/cupsreject: Controla si la cola acepta nuevos trabajos
| Estado | Acepta trabajos | Imprime trabajos |
|---|---|---|
| enable + accept | Si | Si (funcionamiento normal) |
| disable + accept | Si | No (acumula en cola) |
| enable + reject | No | Si (solo procesa los existentes) |
| disable + reject | No | No (completamente detenida) |
lpmove - Mover trabajos entre colas
Permite mover trabajos de impresion de una cola a otra.
# Mover un trabajo especifico a otra impresora
lpmove MiImpresora-123 OtraImpresora
# Mover TODOS los trabajos de una impresora a otra
lpmove MiImpresora OtraImpresoraUso tipico: Cuando una impresora se averia, se mueven los trabajos pendientes a otra impresora disponible.
IPP (Internet Printing Protocol)
- Protocolo estandar para comunicacion con impresoras en red
- Base del sistema CUPS
- Puerto: 631/TCP (HTTP sobre el puerto 631)
- Soporta operaciones: enviar trabajo, consultar estado, cancelar trabajo, obtener atributos
- Las URI de impresoras IPP usan el formato:
ipp://host:631/printers/nombre - IPP Everywhere: Estandar moderno que permite imprimir sin necesidad de drivers especificos (la impresora describe sus capacidades via IPP)
# Ejemplo de URI IPP
ipp://192.168.1.50:631/printers/MiImpresora
ipps://192.168.1.50:631/printers/MiImpresora # IPP sobre TLS (cifrado)cupsctl
Herramienta para configurar opciones del servidor CUPS.
cupsctl # Mostrar configuracion actual
cupsctl --share-printers # Compartir impresoras en red
cupsctl --no-share-printers # No compartir
cupsctl --remote-admin # Permitir administracion remota
cupsctl --no-remote-admin # Deshabilitar administracion remotalpoptions
Gestiona opciones de impresion del usuario.
lpoptions -d MiImpresora # Establecer impresora predeterminada
lpoptions -l # Listar opciones disponibles
lpoptions -p MiImpresora -l # Opciones de impresora especifica
lpoptions -o media=A4 -o sides=two-sided-long-edge # Establecer opcionesLegacy: LPD (Line Printer Daemon)
- Sistema de impresion clasico de BSD
- Demonio
lpd, archivo de configuracion/etc/printcap - CUPS proporciona compatibilidad con los comandos LPD
- En el contexto actual, los comandos
lpr,lpq,lprmson proporcionados por CUPS
Puntos clave para el examen
- CUPS es el sistema de impresion estandar, interfaz web en puerto 631
- IPP (Internet Printing Protocol) usa puerto 631/TCP; es la base de CUPS
- lp es System V (usa
-d), lpr es BSD (usa-P) para seleccionar impresora - lpadmin administra impresoras:
-pcrear,-xeliminar,-dpredeterminada cupsenable/cupsdisablehabilitan/deshabilitan la impresion;cupsaccept/cupsrejectcontrolan la aceptacion de trabajoslpmovemueve trabajos de una cola a otra- lpstat -t muestra el estado completo del sistema de impresion
- cancel (System V) y lprm (BSD) cancelan trabajos
- lpinfo -v lista dispositivos, lpinfo -m lista drivers
/etc/cups/cupsd.confes la configuracion del demonio/etc/cups/printers.confdefine las impresoras (no editar manualmente con CUPS activo)- Los archivos PPD describen las capacidades de cada impresora
Trampas del examen
Errores comunes y distinciones criticas que LPI suele evaluar en este subtema:
lp -d(System V) vslpr -P(BSD) para seleccionar impresora —lpusa-d nombreylprusa-P nombrepara elegir la impresora. Confundir las opciones entre los estilos System V y BSD es una trampa clasica del examenlp -n 3vslpr -# 3para numero de copias — System V (lp) usa-n; BSD (lpr) usa-#. El examen puede mezclar las opciones de ambos estilos para confundir- CUPS usa puerto 631, NO el puerto 80 — La interfaz web de CUPS esta en
http://localhost:631. IPP (Internet Printing Protocol) tambien usa el puerto 631/TCP. No confundir con HTTP (puerto 80) cupsenable/cupsdisablevscupsaccept/cupsreject—cupsenable/cupsdisablecontrolan si la impresora PROCESA trabajos;cupsaccept/cupsrejectcontrolan si la cola ACEPTA nuevos trabajos. Una impresora puede estar deshabilitada pero seguir aceptando trabajos (se acumulan en cola)/etc/cups/printers.confNO se debe editar manualmente — Este archivo se gestiona automaticamente por CUPS. Editarlo mientras cupsd esta en ejecucion puede causar corrupcion. Se usalpadminpara administrar impresoraslpadmin -destablece la impresora PREDETERMINADA — No confundir con-p(crear/modificar impresora) o-x(eliminar).-dsin mas opciones solo cambia la impresora por defectolpstat -tmuestra el estado COMPLETO — Para ver toda la informacion del sistema de impresion (impresoras, trabajos, estado) se usalpstat -t.-amuestra solo que impresoras aceptan trabajos,-psolo el estado de las impresorascancel(System V) vslprm(BSD) para cancelar — Ambos cancelan trabajos pero con sintaxis diferente.cancel MiImpresora-123olprm 123.lprm -cancela todos los trabajos del usuariolpinfo -vlista dispositivos,lpinfo -mlista drivers — No confundir las opciones.-v(verbose/devices) muestra las URIs de impresoras detectadas;-m(models) muestra los modelos/drivers disponibleslpmovemueve trabajos entre COLAS — Se usa cuando una impresora falla y hay que migrar sus trabajos pendientes a otra impresora.lpmove MiImpresora OtraImpresoramueve TODOS los trabajos