Administrar impresoras CUPS desde la línea de comandos | Algo de Linux

jueves, 25 de abril de 2013

Administrar impresoras CUPS desde la línea de comandos

La mayor parte de las veces configuramos nuestras impresoras mediante el interfaz web de CUPS, pero, en ocasiones, necesitamos administrarlas desde un terminal. Vamos a ver un ejemplo de cómo podemos hacerlo:

Supongamos que quiero añadir una impresora, a la que voy a llamar epl5900-dcha en el ordenador sprofesores2-pro.

1) Me conecto de forma remota al equipo sprofesores2-pro mediante ssh:
# ssh sprofesores2-pro
 
2) Una vez conectado a la máquina remota, lo primero que haré será listar los dispositivos de impresión:

root@sprofesores2-pro:~# lpinfo -v

file cups-pdf:/
network beh
network socket
direct parallel:/dev/lp0
direct usb://EPSON/EPL-5900
network ipp
network lpd
network http
direct scsi
serial serial:/dev/ttyS0?baud=115200

Como se puede apreciar en el listado anterior, tengo una impresora EPL-5900 conectada por USB en la máquina.

Por cierto, si quisiera obtener la información en formato largo, añado el parámetro -l:

root@sprofesores2-pro:~# lpinfo -l -v

3) Bien, pues ahora que ya tengo la información de los dispositivos detectados, obtengo la lista de drivers, filtrando para obtener sólo los de la impresora epl5900:

root@sprofesores2-pro:~# lpinfo -m|grep 5900
 
gutenprint.5.2://epson-epl-5900/expert Epson EPL-5900 - CUPS+Gutenprint v5.2.6
foomatic:Epson-EPL-5900-eplaser.ppd Epson EPL-5900 Foomatic/eplaser (recommended)
foomatic:Epson-EPL-5900-gutenprint-ijs-simplified.5.2.ppd Epson EPL-5900 Foomatic/gutenprint-ijs-simplified.5.2
foomatic:Epson-EPL-5900-gutenprint-ijs.5.2.ppd Epson EPL-5900 Foomatic/gutenprint-ijs.5.2
foomatic:Epson-EPL-5900-hpijs-pcl5e.ppd Epson EPL-5900 Foomatic/hpijs-pcl5e
foomatic:Epson-EPL-5900-lj4dith.ppd Epson EPL-5900 Foomatic/lj4dith
foomatic:Epson-EPL-5900-lj5gray.ppd Epson EPL-5900 Foomatic/lj5gray
foomatic:Epson-EPL-5900-ljet4.ppd Epson EPL-5900 Foomatic/ljet4
....

4) Una vez que tengo los dispositivos y los drivers, ya puedo añadir la impresora haciendo uso del comando lpadmin.

root@sprofesores2-pro:~# lpadmin -p epl5900-dcha -v usb://EPSON/EPL-5900 -m foomatic:Epson-EPL-5900PS-ljet4.ppd
  • Con el parámetro -p epl5900-dcha estoy indicando el nombre que va a tener la cola de impresión.
  • Con el parámetro -v usb://EPSON/EPL-5900 estoy indicando el dispositivo de impresión que quiero configurar.
  • Y con el parámetro -m foomatic:Epson-EPL-5900PS-ljet4.ppd estoy indicando el driver que voy a utilizar
5) Una vez añadida la impresora, la activo:

root@sprofesores2-pro:~# cupsenable epl5900-dcha

6) Y, por último, permito que acepte trabajos:

root@sprofesores2-pro:~# cupsaccept epl5900-dcha

Si en algun momento quisiera desactivarla, tan sólo tendría que ejecutar:

root@sprofesores2-pro:~# cupsdisable epl5900-dcha
Y si quisiera que dejara de aceptar trabajos:

root@sprofesores2-pro:~# cupsreject epl5900-dcha
Por cierto, se me olvidó decir que para comprobar el estado de la impresora podemos usar lpstat:

root@sprofesores2-pro:~# lpstat -t
En el ejemplo hemos visto cómo añadir una impresora local. Por supuesto, añadir una impresora remota es igual de sencillo. Eso sí. No olvidemos que tenemos que tener los drivers instalados en la máquina donde vamos a configurarla. Veamos un ejemplo.

Supongamos que quiero configurar la impresora del equipo sprofesores2-pro en el equipo sprofesores-pro. No tendría más que conectarme al equipo sprofesores-pro y ejecutar el siguiente comando:

root@sprofesores-pro:~# lpadmin -p epl5900-dcha-salaprofesores -v http://sprofesores2-pro:631/printers/epl5900-dcha -m foomatic:Epson-EPL-5900PS-ljet4.ppd

Por último, decir que, si queremos especificar la ubicación de la impresora, debemos utilizar el parámetro -L. Y si queremos añadir una descripción, lo hacemos con el parámetro -D. Siguiendo con el ejemplo anterior:

root@sprofesores-pro:~# lpadmin -p epl5900-dcha-salaprofesores -v http://sprofesores2-pro:631/printers/epl5900-dcha -m foomatic:Epson-EPL-5900PS-ljet4.ppd -L "Sala de profesores" -D "Impresora compartida"


5 comentarios:

Ezequiel dijo...

Esto es verdaderamente útil. Muchas gracias

Anónimo dijo...

Buenas, al agregar la impresora en red, obtengo:
lpadmin: No se ha podido copiar el archivo PPD

Al parecer relacionado a que tengo deshabilitado el root para ssh, puede ser?

Gracias desde ya
Javier.-

Esteban M. Navas Martín dijo...

Es muy probable que sea eso. Los archivos ppd se almacenan en directorios accesibles por el administrador ¿No estás ejecutando los commandos como root?

Anónimo dijo...

Gracias por tu informacion. Una pregunta, hay alguna forma de determinar si la impresora tiene papel o no por comandos?

Esteban M. Navas Martín dijo...

En las pruebas que yo he realizado al menos, no.