quinta-feira, 21 de fevereiro de 2019

IBQUOTA 3.2 (20/02/2019)

O IBQUOTA versão 3.2 está disponível em:

https://github.com/valcir/ibquota/tree/IBQUOTA-3.2

Principais correções:
- Correção no cadastro de Grupos e Políticas de Impressão (GG)
- Correção no Backend, havia impressão sendo contabilizada e não saia na Impressora.

A próxima versão, a 3.3, está prevista para ser lançada dia 20/04/2019. Ajude o projeto com submissão de erros, dúvidas ou sugestões.

quarta-feira, 16 de janeiro de 2019

IBQUOTA versão 3.1 (16/01/2019)

IBQUOTA 3.1

Nova versão disponível em https://github.com/valcir/ibquota/tree/IBQUOTA-3.1.

Instalação

1 - Executar os processos de instalação dos pacotes.

$ sudo apt-get install apache2 build-essential cups pkpgcounter mysql-server php libdbd-mysql-perl libnet-ldap-perl

2 - Download IBQUOTA 3 (versão em Desenvolvimento)

$ wget https://github.com/valcir/ibquota/archive/master.zip
ou
$ git clone https://github.com/valcir/ibquota.git

3 - Configurando o cups.

$ sudo vi /etc/cups/cupsd.conf
Localizar a linha "Listen localhost:631" e alterar para:
Listen 631
Dar permissão de acesso ao CUPS, altere as linhas conforme abaixo:
#Restrict access to the server...
<Location />
  Allow all
  Order allow,deny
</Location>

#Restrict access to the admin pages...
<Location /admin>
  Allow all
  Order allow,deny
</Location>

#Restrict access to configuration files...
<Location /admin/conf>
  Allow all
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
</Location>

4 - Banco de Dados:

Criar o banco de dados:
$ sudo mysql -u root -p
$ password: *****
$ mysql> CREATE DATABASE ibquota3;
$ mysql> exit

Criar a estrutura do Banco (tabelas) através do script ibquota3.sql.
$ cd ibquota3/sql
$ sudo mysql -u root -p ***** ibquota3 < ibquota3.sql

Criar um usuário no Banco:
$ sudo mysql -u root -p
mysql> GRANT ALL ON ibquota3.* TO ibquota@localhost identified by 'ibquota';
mysql> FLUSH PRIVILEGES;
mysql> exit

O script principal (ibquota3) deverá ser copiado para dentro do CUPS.
$ cd backend
$ sudo cp ibquota3 /usr/lib/cups/backend/
$ cd /usr/lib/cups/backend
$ sudo chmod 755 ibquota3
$ sudo chown root ibquota3

Agora temos que editar o backend:
$ sudo vi /usr/lib/cups/ibquota3

my $DBhost="localhost";
my $DBlogin="ibquota";
my $DBpassword="ibquota";
my $DBdatabase="ibquota3";
my $DBport=3306;

$ cd ../gg
$ sudo mkdir /var/www/html/gg
$ sudo cp -r * /var/www/html/gg

Neste momento iremos editar o arquivo com as configurações de acesso a banco.
$ cd /var/www/html/gg
$ sudo vi includes/db.php

define("HOST", "localhost");     // Servidor com o qual voce quer se conectar.
define("USER", "ibquota");       // Usuário para acessar o banco de dados. 
define("PASSWORD", "ibquota");   // Senha de acesso ao banco de dados. 
define("DATABASE", "ibquota3");  // O nome do banco de dados.

5 - Reiniciar o CUPS:

$ sudo /etc/init.d/cups restart

6 - Instalando a impressora no servidor.

Acesse o CUPS:
http://ip_do_servidor:631
Em "Administration", selecione:
"Show printers shared by other systems"
"Share printers connected to this system"
"Allow printing from the Internet"
"Allow remote administration"
"Allow users to cancel any job (not just their own)" 

Em "Administration", clique em "Add Printer" Faça a instalação da impressora prestando atenção em "connection".
connection: ibquota3:socket://IP-DA-IMPRESSORA

7 - Configuração via GG:

- Acesse o GG http://ip_do_servidor/gg 
- Login com "admin" (A senha será resetada)
- Configuração principal (Paths, Base de usuários [SQL ou LDAP/AD], DEBUG)
- Criar Usuário e Grupo, se Base for SQL;
- Criar Política de Impressão
- Faça um teste de impressão... 

8 - Teste a configuração do Backend:

$ perl /usr/lib/cups/backend/ibquota3 --check

PATH_PYTHON = /usr/bin/python [OK]
Python is executable [OK]
PATH_PKPGCOUNTER = /usr/bin/pkpgcounter [OK]
Base de Dados: LOCAL SQL [OK]
...


Obrigado pelo interesse no IBQUOTA!


quarta-feira, 9 de janeiro de 2019

Política de erro do CUPS com a diretiva ErrorPolicy

A Política de Erro permite você selecionar um comportamento padrão no CUPS em caso de falha na impressão. Você pode preferir parar totalmente a impressora após uma falha para poupar papel ou você pode ignorar a impressão com falha e seguir normalmente com o restante.

CUPS: ErrorPolicy
ErrorPolicy é a diretiva no CUPS que faz a configuração da política de erro, e cada impressora pode ser configurada individualmente. Veja o exemplo abaixo do arquivo /etc/cusps/printers.conf:

#...
<Printer IBQUOTA3_Fake>
      Info Impressora IBQUOTA3 Fake /dev/null
      Location Impressora teste do IBQUOTA
      DeviceURI ibquota3:file:///dev/null
      State Idle
      Accepting Yes
      Shared Yes
      QuotaPeriod 0
      PageLimit 0
      KLimit 0
      OpPolicy default
      ErrorPolicy abort-job
</Printer>
#...

Este é um exemplo onde a impressão será descartada após ocorrer a falha (abort-job). Há outras opções para a diretiva ErrorPolicy:

abort-job:

Significa que a impressão (job) com falha será descartada e a próxima será executada normalmente.

retry-current-job:

A impressão será repetida novamente imediatamente após falha, ou seja haverá uma nova tentativa de impressão do job.

retry-job:

A impressão será repetida novamente mais tarde após falha. O tempo de espera para repetição é definido na diretiva "JobRetryInterval N" o parâmetro N é definido em segundos.

stop-printer:

Especifica que a impressora deve parar imediatamente após uma falha. Este comportamento é o padrão do CUPS.


Você deve escolher a melhor política de erro para a impressora. Apesar o padrão ser parar totalmente a impressora, outra diretiva interessante é a abort-job,  pois permite que outros usuários continuem utilizando a impressora.

quinta-feira, 3 de janeiro de 2019

Test-Drive IBQUOTA3 - Servidor Pronto em VirtualBox

Com objetivo de facilitar a vida de quem está interessado em testar o IBQUOTA 3 sem perder muito tempo: este artigo mostra como você pode fazer o Download do servidor pronto.
O VirtualBox é uma ferramenta simples e de amplo conhecimento, por este motivo não há explicação de instalação ou utilização.

1) Fazer download da imagem: IBQUOTA3.ova (~3,3 GB);

2) "Importar Appliance" no Virtualbox;

Importar Applicance VirtualBox: IBQUOTA3
Aguardar importação da máquina virtual
Máquina Virtual Importada no VirtualBox
3) Executar máquina virtual (seta verde "Iniciar");

4) Efetuar login no sistema com a senha "ibquota3":
Senha = ibquota3
Sistema logado
Neste momento você conseguiu executar a máquina virtual e logar no sistema.

5) Ver configuração do CUPS através do navegador Firefox "localhost:631" e clicar no botão "Administração":
CUPS: Administração de Impressora
Veja que há uma impressora já criada chamada "IBQUOTA3_Fake". Esta impressora é "Fake" ou seja, tudo que você mandar imprimir nela será direcionado para "/dev/null".
É no CUPS que você irá configurar novas impressoras.

6) Gerenciador Gráfico - GG do IBQUOTA: Abra o endereço "http://localhost/gg/"
Tela de login do IBQUOTA3
A senha do usuário admin é ibquota3 e pode ser alterada.
Há uma política de impressão já configurada no sistema:
IBQUOTA3: Política de impressão
Relatório de impressão:
IBQUOTA3: Relatório de impressão

Você pode enviar um job de impressão e selecionar a impressora IBQUOTA3_Fake, veja:
Pedido de imrpessão
Basta configurar a impressora em qualquer estação e submeter o job. O IBQUOTA irá verificar a quota de usuário e liberar ou cancelar a impressão.

O IBQUOTA utilizado nesta máquina virtual é a versão 3.0.1 (28/12/2018). Há muitas funcionalidades não vistas neste artigo, bons testes...

OBS: NÃO UTILIZAR ESTA INSTALAÇÃO EM PRODUÇÃO POIS AS SENHAS SÃO TODAS CONHECIDAS: ibquota3.

domingo, 23 de dezembro de 2018

IBQUOTA 3 - Nova Versão - Backend CUPS

O IBQUOTA foi reescrito para funcionar como um Backend do CUPS, agora muito mais simples de instalar e gerenciar.
O GG (Gerenciador Gráfico) está de cara nova:
Novo layout do IBQUOTA3
Possui código responsivo para melhor visualização em dispositivos móveis. O Bootstrap 4 foi utilizado.

Funcionando com um Backend do CUPS está rápido e NÃO necessita das filas de impressão VIRTUAL e REAL.
IBQUOTA3
A versão 3.1 será divulgada em 15 de Janeiro de 2019. Informações de instalação: https://github.com/valcir/ibquota .

Em breve novos artigos...

segunda-feira, 30 de janeiro de 2017

Como alterar contagem de página do IBQUOTA - pkpgcounter

O IBQUOTA possui um contador de páginas interno, que pode ser substituído por outro contador. Um contador alternativo é o pkpgcounter, que possui suporte aos seguintes formatos de impressão:

  • PostScript (both DSC compliant and binary)
  • PDF
  • PCL3/4/5
  • PCLXL (aka PCL6)
  • DVI
  • OpenDocument (ISO/IEC DIS 26300)
  • Microsoft Word (c) (tm) (r) (etc...)
  • Plain text
  • TIFF
  • Several other image formats
  • ESC/P2
  • Zenographics ZjStream
  • Samsung QPDL (aka SPL2)
  • Samsung SPL1
  • ESC/PageS03
  • Brother HBP
  • Hewlett-Packard Lightweight Imaging Device Interface Language
  • Structured Fax
  • Canon BJ/BJC
  • ASCII PNM (Netpbm)

Primeiro passo, instalar o contador de páginas:

sudo apt-get install pkpgcounter

O comando pkpgcounter retorna a quantidade de páginas de um arquivo que esteja em um dos formatos citados acima. Uma vez instalado, vamos a configuração do IBQUOTA. Alias, está sendo considerado que seu servidor está com tudo instalado.

Configuração do IBQUOTA:
No arquivo "funcoes.pl" substituir a função NUMERO_PAGINAS_JOB() pelo texto abaixo:

sub NUMERO_PAGINAS_JOB() {
 my ($arquivo_job)=@_;
 my $num_paginas=0;

 my $conta_paginas=qx{pkpgcounter $arquivo_job 2> /dev/null};

  # Check return code.
  my $rcode = $?;
  my $crcode = $rcode >> 8;

  if ($rcode == 0){
    $num_paginas=$conta_paginas;
  }
  else{
    &GRAVA_LOG("Não foi possivel contar páginas $arquivo_job","ERRO");
  }

 return ($num_paginas) ;
}

A partir deste momento o pkpgcounter irá identificar a quantidade de páginas do arquivo impresso. Esta é uma alternativa para quem está com problema na identificação da quantidade de página.

sexta-feira, 11 de novembro de 2016

Dicas de instalação e configuração do banco de dados do IBQUOTA

O IBQUOTA utiliza o Mysql como servidor de banco de dados para registrar informação dos usuários, dos grupos, das impressoras, das impressões e entre outras, como a cota do usuário, por exemplo.

O servidor de Banco pode ser instalado na mesma máquina ou, caso você já tenha um servidor disponível, poderá utilizá-lo.

O banco de dados está organizado em 12 tabelas, com nomes sugestivos:

mysql> show tables;      
+---------------------+  
| Tables_in_IBQUOTA   |  
+---------------------+  
| conjunto_impressora |  
| formato             |  
| grupo               |  
| grupop              |  
| impressoes          |  
| impressora          |  
| inicializacao       |  
| modp                |  
| politica            |  
| status_impressao    |  
| tipo_politica       |  
| usuario             |  
+---------------------+  
12 rows in set (0.00 sec)

O esquema completo do banco de dados está no arquivo ibquota.sql, dentro do pacote de instalação (AQUI). 

No terminal, digite o comando para entrar no shell do MySQL:
$ mysql -uroot -p
A senha do administrador do banco de dados será solicitada.

Para importar a estrutura do banco, digite:
mysql> source ibquota.sql
Toda a estrutura do Banco será criada.

Por motivo de segurança, você deve definir uma senha para o Banco de Dados. No arquivo ibquota.sql há a seguinte linha:
grant all privileges on IBQUOTA.* to ibquota@localhost identified by 'senha';

Esta senha poderá ser alterada por outra qualquer, mas não se pode esquecer de configurar o script do IBQUOTA (ibquota.conf e o arquivo php).

O comando acima considerou que o servidor de impressão está na mesma máquina que o servidor de banco de dados. Caso esteja utilizando máquinas separadas, substitua o "localhost" pelo IP do servidor de impressão. Por exemplo:
grant all privileges on IBQUOTA.* to ibquota@192.168.0.10 identified by 'senha';

Neste caso o endereço IP do servidor de impressão seria o 192.168.0.10.

Performance do Banco de Dados

O servidor de Banco de Dados não precisar ser parrudo para suportar o IBQUOTA, a carga é muito pequena. Prefira investir em disponibilidade, pois se o serviço de banco ficar inoperante, então o serviço de impressão também não irá funcionar.