Notícias sobre Ubuntu, Debian, Fedora, Linux, Android, Tecnologia, LibreOffice e muito mais!

Monitorando e gerando relatórios de impressão – PARTE 2

O CUPS é um bom gerenciador de impressoras e realiza esse trabalho de forma muito eficiente, entretanto, quando e trabalha em uma empresa, repartição, etc, é comum sabermos de histórias onde um funcionário imprime documentos que nada tem a ver com o trabalho e até mesmo histórias de impressões de livros.

Lembro-me que, em uma repartição pública na qual estagiei, contaram uma história em que um dos funcionários imprimiu os livros “Nas Montanhas da Loucura” de H.P. Lovecraft e “It – A Coisa” de Stephen King, e eu fui contratado para substituir justamente o “funcionário dos livros”.

Mas o que essa história toda tem haver com o CUPS? É simples, o CUPS não gera relatórios de impressão, ele “apenas” gerencia e centraliza impressões, para saber o que é imprimido na impressora x ou y precisaremos de um outro programa, o mesmo programa que causou a saída do “funcionário dos livros”. O programa que ensinarei vocês a instalar, executar e trabalhar em conjunto, se chama JASmine.

Conhecendo o JASmine

O JASmine é software usado em conjunto com o CUPS para emissão de relatórios de impressão, com ele também é possível reduzir custos, criar limites de impressões para cada usuário e verificar se falhas ou problemas ocorrem durante a impressão.Nesse artigo, utilizarei a distribuição Ubuntu 16.04.

Instalando os pacotes necessários

O JASmine solicita outros pacotes instalados como o PHP, MySQL e Python, então vamos instalá-los.

Copie o comando abaixo:

sudo apt-get install apache2 vim build-essential cups cups-pdf apparmor-utils pkpgcounter samba mysql-server-5.7 php-mbstring php7.0-mbstring php-gettext phpmyadmin libdbd-mysql-perl

Com os pacotes instalados, vamos configurar o CUPS.

sudo vim /etc/cups/cupsd.conf

Altere a linha com o atributo “Listen localhost:631” para “Listen 631”.

Vamos dar permissão de acesso ao CUPS, altere as linhas para o que está 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>

Configurando o Samba

Copie o comando para dar permissões de acesso:

sudo smbpasswd -a root

O comando abaixo, você deverá colocar o hostname do servidor com letra maiúscula:

sudo net -S localhost -U root -W HOSTNAME-DO-SERVIDOR rpc rights grant 'root' SePrintOperatorPrivilege

Edite o arquivo cups-pdf com o seu editor de texto favorito:

sudo nano /etc/cups/cups-pdf.conf
 Altere a linha 45 com o atributo “Out ${HOME}/PDF” para “Out /var/spool/cups-pdf/${USER}”

No mesmo arquivo, modifique as linhas conforme abaixo:

Label 1 - Linha 98
Log /var/log/cups - Linha 201
DecodeHexStrings 1 - Linha 279

 Instalando o JASmine

Com todas essas modificações realizadas, vamos instalar o JASmine. Primeiramente, baixe os arquivos com os comandos abaixo:

sudo wget http://nayco3.free.fr/Jasmine/Releases/0.0.3/JASmine-MySQL-0.0.3.tar.bz2
sudo wget http://nayco3.free.fr/Jasmine/Releases/0.0.3/JASmine-Backend-0.0.3.tar.bz2
sudo wget http://nayco3.free.fr/Jasmine/Releases/0.0.3/JASmine-Web-0.0.3.tar.bz2

Agora criaremos o banco que armazenará os dados de impressão:

sudo mysql -u root -p
password: *************
mysql> CREATE DATABASE print;
mysql> exit

 O arquivo JASmine-MySQL possui um script e utilizaremos agora:

sudo tar -jxvf JASmine-MySQL-0.0.3.tar.bz2
cd JASmine-MySQL-0.0.3
sudo mysql -u root -p print < jasmine.sql

Crie um usuário no MySQL:

 sudo mysql -u root -p
mysql> GRANT ALL ON print.* TO jasmine@localhost identified by 'senha';
mysql> FLUSH PRIVILEGES;
mysql> exit

O pacote JASmine-Backend possui os programas auxiliares que monitorarão as impressões e gerarão os dados que serão salvos no banco.

sudo tar -jxvf JASmine-Backend-0.0.3.tar.bz2
cd JASmine-Backend-0.0.3

Copie o script JASmine escrito em Perl para dentro do CUPS.

sudo cp jasmine /usr/lib/cups/backend/
cd /usr/lib/cups/backend
sudo chmod 755 jasmine
sudo chown root jasmine

Vamos editar o script e colocar as informações do banco de dados.

sudo vim jasmine
my $DBhost="localhost";
my $DBlogin="jasmine";
my $DBpassword="senha";
my $Dbdatabase="print";

O JASmine-Web mostrará as informações de impressão em uma janela Web, volte para pasta onde você baixou os arquivos.

sudo mkdir /var/www/html/Impressao
sudo cp -r * /var/www/html/Impressao

 Editaremos o arquivo com as configurações de acesso ao banco de dados.

cd /var/www/html/Impressao
sudo vim conexao.php
$DB_host="localhost";
$DB_login="jasmine";
$DB_pass="senha";
$DB_db="print";

Vamos criar um script para reinicialização.

sudo vim /etc/restart.sh
#!/bin/bash
#Faz uma pausa aguardando o inicio do sistema.
sleep 10
#Reinicia o samba
/etc/init.d/smbd restart && /etc/init.d/cups restart
sudo chmod +x /etc/restart.sh
sudo chmod 777 /etc/restart.sh

Edite o arquivo abaixo:

sudo vim /etc/rc.local

 Cole o conteúdo abaixo em cima da linha exit 0.

/etc/restart.sh &

Reinicie o sistema.

sudo shutdown -r now

Agora instalaremos 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: jasmine:socket://IP-DA-IMPRESSORA

Bem, esse artigo foi um pouco mais extenso do que o anterior. Qualquer duvida ou problema, por favor, deixe nos comentários ou nos envie um e-mail para que posamos auxiliá-lo na instalação dos programas e na correta utilização do JASmine.

Comentários