Lihuen
RSSRSS AtomAtom

Pykota

Funcionamiento

pykota agrega un backend para cups. Para utilizarlo debemos agregar en la url de la impresora "pykota://" al comienzo de el uri.

Por ejemplo una impresora compartida con samba con el siguiente uri.

smb://servidor/impresora

Pasaría a ser (para que pykota cuente los trabajos antes de enviarlos al servidor)

pykota://smb://servidor/impresora

O bien para el puerto paralelo

parallel:

Pasaría a ser

pykota://paralell:

Si no cambiamos el uri de esta manera pykota no podrá controlar los trabajos que pasan a la impresora.

Instalación

Descargar pykota desde http://www.pykota.com/software/pykota/download/

Descomprimir el paquete y ejecutar "./pksetup debian", este script va a hacer un "apt-get update" y a descargar otros paquetes. Además crea una configuración por defecto, instala postgresql y crea su base de datos de usuarios ahí.

Hay que chequear que se haya instalado pkpgcounter que es una aplicación de pykota para contar las páginas por software. Sino hay que descargarlo desde la página de pykota e instalarlo.

Archivos de configuración En /etc/pykota/ hay 2 archivos de configuración

pykota.conf 
que tiene que poder ser leído por todos los usuarios
pykotaadmin.conf 
con datos de la base de datos, solo el usuario pykota y el grupo pykota tienen que poder leerlo.
Este archivo tiene el nombre de usuario y contraseña para acceder a la base de datos de pykota en modo administrador.

En pykota.conf se pueden configurar la mayoría de las opciones de pykota (el resto se hace con unos comandos que pongo más adelante)

Dirección de correo a la que va a notificar cuando pykota falle

crashrecipient : pykotacrashed@librelogiciel.com

Configuración del servidor SMTP para las notificaciones

smtpserver : urldelservidordemail

Posfijo para las direcciones de mail de los usuarios. Si agregamos un usuario sin indicar su dirección de mail se asume este posfijo, si lo de abajo está en blanco se asume la url del servidor. Por ejemplo "pkusers --add usuario" asume que el usuario tiene la dirección de mail usuario@posfijo o usuario@urldelservidordemail dependiendo si llenamos el campo de abajo

maildomain :

Nombre del administrador

admin : cups

Email del administrador (para que reciba las notificaciones cuando los usuarios se quedan sin cuotas

adminmail :

El siguiente indica quien recibe un mail cuando un usuario se queda sin cuota las opciones son DevNull (no enviar mail), User, Admin y Both (el administrador y el usuario reciben un mail

mailto : both

Pasa los nombres de usuario a minúscula, esto es importante en dominios windows porque si este campo está seteado en "No" el usuario "IMPRESora" y "impresora" son dos usuarios distintos con cuotas distintas.

utolower : Yes

El siguiente campo determina que pasa cuando falla el backend (falla la impresión), se puede optar por descontar o no el trabajo de la cuota del usuario con charge y nocharge también existe la opción "retry:numDeIntentos:delayEnSegundosEntreReintentos" para que pykota vuelva a enviar el trabajo

onbackenderror : nocharge

Contadores de hojas

Metodo para contar las hojas antes de enviar el trabajo a la impresora (puede ser solamente por software)

preaccounter : software()

Metodo para contar las hojas luego de enviar el trabajo (puede ser hardware o software) en hardware hay que poner un script entre los parentesis para que imprima en pantalla el contador de hojas de la impresora, esta información se puede obtener por el puerto paralelo, smnp o appletalk dependiendo de la impresora. En se pueden encontrar los archivos pagecount.* y el script waitprinter.sh para el accounter por hardware

accounter : software()

El campo de abajo indica que hacer si falla el accounter las opciones son stop o continue con stop se cancela el trabajo y con continue pueden inducirse trabajos gratuitos cuando falla el accounter

onaccountererror : stop

Configuración por impresora: se pueden configurar individualmente los accounters para cada impresora individualmente

[Virtual_Printer]
preaccounter : software()
accounter : software()

[Virtual_Printer_Pykota]
preaccounter : software()
accounter : software()