CUPS + Jasmine (gerenciador de impressões e relatórios de impressão)

Vou postar aqui mais um artigo entre inúmeros no Viva o Linux, mas porque outro? Algumas pessoas já me falaram que não conseguiram seguindo os artigos aqui postados, então vou explicar mais detalhadamente.

[ Hits: 127.223 ]

Por: José Rodrigues Filho em 08/10/2010


Jasmine + impressora de testes (economia de papel)



Instale os pacotes abaixo:

sudo aptitude install php5 mysql-server-5.0 php5-mysql libdbd-mysql-perl python python-imaging

Agora no site http://jasmine.berlios.de/dokuwiki/doku.php, efetue o download dos arquivos:
  • JASmine-MySQL
  • JASmine-Backend
  • JASmine-Web

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

A primeira etapa é criar o banco que vai armazenar os dados de impressão.

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

Agora vamos utilizar o script contido no arquivo JASmine-MySQL.

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 para gerenciar o banco de impressão.

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

Saia da pasta onde está agora:

cd ..

Dentro do JASmine-Backend existem os programas auxiliares que irão monitorar as impressões e gerar os dados a serem salvos no banco. Na pasta do JASmine-Backend existe o pkpgcounter que será instalado com o auxílio do Python.

sudo tar -jxvf JASmine-Backend-0.0.3.tar.bz2
$ cd JASmine-Backend-0.0.3
$ sudo tar -zxvf pkpgcounter-2.10.tar.gz
$ cd pkpgcounter-2.10
$ sudo python setup.py install


Saída da pasta onde está agora:

cd ..

Na pasta raiz do JASmine-Backend existe um script em Perl chamado jasmine que deverá ser copiado para dentro do CUPS.

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


Agora temos que editar nosso script para colocar as informações referentes ao banco de dados, localizados nas linhas 28, 29, 30, 31:

sudo vim jasmine

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

Existe também na linha 41 do script informando que o mesmo está no modo debug. Altere esta linha para:

my $Debug_Mode=0;

Reinicie o CUPS e vamos a etapa final.

sudo invoke-rc.d cupsys restart

O JASmine-Web é a página que coleta as informações e as exibe na Web, volte para pasta onde você baixou os arquivos.

sudo tar -jxvf JASmine-Web-0.0.3.tar.bz2
$ cd JASmine-Web-0.0.3/
$ sudo mkdir /var/www/jasmine
$ sudo cp -r * /var/www/jasmine


Neste momento iremos editar o arquivo com as configurações de acesso a banco.

cd /var/www/jasmine
$ sudo cp config.php.dist config.php
$ sudo vim config.php


// Database vars
$DB_host="localhost";
$DB_login="jasmine";
$DB_pass="senha";
$DB_db="print";

Existe uma configuração para testes de impressão que o JASmine fornece para que possamos visualizar os resultados sem termos que gastar toner e papel. Para isso você entra na pasta JASmine-Backend-0.0.3 e copia o arquivo dummy para o diretório /usr/lib/cups/backend.

sudo cp dummy /usr/lib/cups/backend
$ sudo chmod 755 /usr/lib/cups/backend/dummy
$ sudo chown root /usr/lib/cups/backend/dummy


Feito reinicie o CUPS com o comando:

sudo invoke-rc.d cupsys restart

Edite o arquivo jasmine dentro de:

sudo vim /usr/lib/cups/backend/jasmine

Altere a linha 67 de:

my $lockfile = $backends_dir."/".$me.".lock";

Para:

my $lockfile ="/tmp/".$me.".lock";

Salve o arquivo e feche, agora vamos fazer alguns testes para ver o sistema funcionando.

Página anterior     Próxima página

Páginas do artigo
   1. Ambiente utilizado
   2. Samba
   3. Jasmine + impressora de testes (economia de papel)
   4. Instalando a impressora no servidor
   5. Instalando a impressora no Windows
   6. Contabilizar as páginas no Jasmine
Outros artigos deste autor

Drivers de impressão para clientes com Windows 7/XP

FTP com autenticação LDAP

CUPS + Jasmine Ubuntu Server 10.04 LTS (gerenciador de impressões e relatórios de impressão)

Administração - Controle de Acessos

Servidor Ubuntu 8.04 com proxy autenticado + SARG + Samba + CUPS

Leitura recomendada

Fazendo RSH sem senha

Instalando Debian Lenny no laptop Lenovo ThinKPad SL400

Balanceamento de links + redundância + acesso remoto + sites de bancos

Rodando um aplicativo em modo Kiosk no Ubuntu Linux 20.04

Configuração de Servidor Web no FreeBSD 9

  
Comentários
[1] Comentário enviado por wellington79 em 08/10/2010 - 09:57h

Ola, gostaria de saber se em seu servidor ele faz corretamente a contabilidade de paginas impressas, principamente com arquivos PDFs, pois a um tempo atrás testei o jasmim e o kingfisherqm e nao contabilizavam corretamente as paginas ....

[2] Comentário enviado por joserf em 08/10/2010 - 11:39h

Amigo eu tenho em funcionamento um server com 11 maquinas e 3 impressoras até agora contabilizou normal os PDFs.

[3] Comentário enviado por celosop em 08/10/2010 - 15:33h

Olá, pessoal, ficou ótimo o artigo, realmente bem detalhado, só que eu continuo com um probleminha e não sei se vocês podem me ajudar. Segui todos os passos, e na hora de instalar a impressora no CUPS, testei as 2 maneiras, tanto impressora local, quanto de rede, ambas deram problemas, os erros foram o seguinte:

Local: jasmine couldn't lauch the real backend return code -1.
Rede: jasmine couldn't lauch the real backend return code 256.

Realmente queria saber se alguem teve o mesmo problema e gostaria de me ajudar a resolve-lo, e o engraçado é que quando eu instalo a impressora local sem ser pelo jasmile ele funciona normal. Obrigado galera!!!!

[4] Comentário enviado por joserf em 08/10/2010 - 17:23h

qual sistema esta aplicado seu servidor de impressão ? utiliza Ubuntu 8.04 server e segue o artigo que vai bombar

[5] Comentário enviado por eduardofraga em 12/10/2010 - 22:53h

Olá amigo, parabéns pelo seu artigo.

Eu já tive problemas com Jasmine a alguns anos e realmente tem um BUG na contabilização das páginas.

O problema ocorre na contabilização de páginas que são canceladas. Por exemplo: Se um usuário envia um documento com 50 páginas e, em seguida ele cancela na 3 página, o Jasmine não tem como excluir do banco de dados, ou seja ele conta as 50 páginas, mas só foram impressas 3.


[6] Comentário enviado por sergioricardo em 13/10/2010 - 15:55h

Meu amigo faltou explicar no artigo como adicionar os usuários do Windows para que os mesmos possam aparecer no Relatório.

Mas valeu pelo artigo!?

[7] Comentário enviado por binobass em 26/01/2011 - 17:52h

joserf pode me dar um help? Não consegui criar a base de dados para o jasmine.
em http://localhost/jasmine/ exibe a seguinte erro

Critical errors

DB_connect Unable to connect to host "MYSQL_SERVER": Unknown MySQL server host 'MYSQL_SERVER' (1)
Check that the MySQL host is up, and that you gave the right hostname.
DB_select Unable to select database "MYSQL_DB": Access denied for user 'www-data'@'localhost' (using password: NO)
Check that this database exists, and that you gave the right name.
DB_query Unable to run query "SELECT user,SUM(copies*pages) as total FROM jobs_log GROUP BY user ORDER BY total DESC LIMIT 10": Access denied for user 'www-data'@'localhost' (using password: NO)
Check the syntax of this query, and that the requested data exists.
jas_getUserRankings Query failed !
Check for the query syntax, and that the MySQL host is up.
DB_query Unable to run query "SELECT printer,SUM(copies*pages) as total FROM jobs_log GROUP BY printer ORDER BY total DESC LIMIT 5": Access denied for user 'www-data'@'localhost' (using password: NO)
Check the syntax of this query, and that the requested data exists.
jas_getPrinterRankings Query failed !
Check for the query syntax, and that the MySQL host is up.
DB_query Unable to run query "SELECT server,SUM(copies*pages) as total FROM jobs_log GROUP BY server ORDER BY total DESC LIMIT 5": Access denied for user 'www-data'@'localhost' (using password: NO)
Check the syntax of this query, and that the requested data exists.
jas_getServerRankings Query failed !
Check for the query syntax, and that the MySQL host is up.

Desde de já agradeço.

[8] Comentário enviado por binobass em 27/01/2011 - 13:55h

Bom galera, consegui fazer funcionar o sql, imprimo normal mas no relatório do jasmine exibe o nome do arquivo que foi impresso, mas infelizmente não está contabilizando as paginas de cada arquivo impresso... alguém pode me dar um help?

[9] Comentário enviado por skellbr em 02/03/2011 - 16:42h


Olá
Eu instalei o jasmine e estou tendo problemas .
O problema é seguinte no cups esta aparecendo aquele erro jasmine: couldn't lauch the real backend; Return code: -1 .
Verifiquei as configurações do Debug e estão desativadas.E a permissão do jasmine esta 755

O caminho da impressora esta jasmine:usb://Samsung/ML-2850%20Series

Sem o jasmine , imprime normal. Engraçado é que com o dummy funciona beleza, aparece no contador jasmine .
Estou usando o Ubuntu 10.10

Obrigado pela ajuda

Atenciosamente.

[10] Comentário enviado por ClaytonJM em 23/03/2011 - 21:52h

Esse IP é ou pode ser o IP do servidor onde ele esta?? e se for isso todas as máquinas da minha rede pode imprimir nele??

[11] Comentário enviado por frozendesigner em 25/03/2011 - 11:13h

Bom dia amigos, alguém já teve a necessidade criar uma lista de palavras que apareçam no title e cancelar a impressão e não enviar para impressora e também a necessidade de mandar imprimir uma cópia impressa e manter uma cópia do mesmo arquivo em pdf em determinada pasta. Estou pesquizando ainda não encontrei nada desse tipo achei um sistema pago printertux de fato muito bom queria fazer um e disponibilizá-lo de forma gratuita.

[12] Comentário enviado por jeff.jno em 01/04/2011 - 21:59h

Olá amigos,
Bruno Dias das Neves valew mesmo o seu artigo resolveu minha vida aqui. Tinha muitos problemas com mandar impressão e nao ir, impressora que nao respondia.
Muitas dessas coisas resolveram com a instalaçao do cups,
Porém agora to com outro problema.
Sempre que tenho passar as impressões pelo jasmine. Da um erro. que é o seguinte.

{completed at
Sex 01 Abr 2011 21:33:27 BRT
"Unable to open print file "": No such file or directory"}

Pode ser visualizado dentro da página de do proprio cups. Se eu tiro o soket jasmine:socket://192.168.200.99
Deichando assim :socket://192.168.200.99
O negocio funciona.
O pior que eu consegui gerar alguns relatórios de cópias com o cups agora nao gero nenhum é ativar e a impressora não imprime.

A permissão do jasmine está em 755 e ja coloquei 775 e nada tambem.

Podem me ajudar?

[13] Comentário enviado por christianmarques em 05/05/2011 - 16:35h

Uso ubuntu 10.04 lts 32 bits server.

Tudo ocorreu bem na instalação, mas o Jasmine não contabiliza nada, fica a tela sempre em branco.

Uso uma RIcoh 2510.

Alguma dica?

[14] Comentário enviado por joserf em 05/05/2011 - 17:50h

christianmarques, esse artigo é pro 8.04 eu estou migrando meu servidor para 10.04 lts porem não cheguei ainda no jasmine assim que eu instalar aqui no meu ambiente de produção estarei postando as mudanças se houver, abraço.

[15] Comentário enviado por joserf em 10/05/2011 - 12:27h

christianmarques, acabei de postar um artigo para o jasmine funcionar no 10.04 lts server só aguardar ou me dar um toque que envio para vc.

[16] Comentário enviado por frozendesigner em 10/11/2011 - 20:04h

Boa noite pessoal, alguém sabe como imprimir ou converter os arquivos que estão em /var/spool/cups. Obrigado a todos.

[17] Comentário enviado por rotaviano em 30/01/2012 - 21:36h


sera que alguem pode me ajudar ...

estou com problema para dexar o cups funcionando e tenho algumas duvidas..

terei apenas 1 servidor cups...

e na maquina cliente tenho q instalar o cups tb ???

como a maquina cliente , é nela que esta instalada a impressora , farei para o servidor gerenciar esse impressora e a maquina cliente identificar o servidor cups ? ? ? ?

***centos 5.7 e ubuntu 10.11 cliente

[18] Comentário enviado por s1n1str0_n3t em 16/05/2012 - 11:41h

Bom dia senhores.
Sei que o projeto Jasmine já esta descontinuado, mas caso alguém assim como eu tenha problemas do tipo abaixo relacionado, encontrei um bem interessante que resolveu o meu problema, até o momento meu servidor esta em testes mas não tive mais problemas depois desta correção sugerida no tutorial. Segue erro:

E [16/May/2012:09:50:10 -0300] [Job 91] Não é possível abrir o arquivo de impressão "": No such file or directory
E [16/May/2012:09:50:10 -0300] [Job 91] jasmine: Couldn't lauch the real backend; Return code: 256

Pelo que entendi a função perl que cria os arquivos temporários não estava operando corretamente, então foi sugerido a alteração na seguinte linha do código fonte Jasmine, segue link:

http://permalink.gmane.org/gmane.comp.printing.jasmine.user/145

Com a certeza de ter ajudado, fico a disposição para mais esclarecimentos.

Ambiente testado:
Slackware 13.1.0
Kernel 2.6.37
Cups 1.4.5-x86_64-2
Mysql 5.1.46-x86_64
Apache 2.4.2
PHP 5.4.0

Impressoras testadas:
HP Laserjet 1160
HP Laserjet 3055
HP OfficeJet Pro L7500

[19] Comentário enviado por david fonseca em 20/08/2012 - 16:35h

Deu tudo certo comigo .... fiz no centos 5.8


Mas tenho uma duvida... tem algum modo de eu poder visualizar as impressões??

Eu so vejo o nome e o tipo do arquivo quer foi impresso , preciso ver seu conteúdo

[20] Comentário enviado por henriquetecinfo em 19/05/2014 - 16:36h

Boa tarde
Estou tentando criar um servidor de impressões seguindo os passos desse tutorial. Parei na página 3, logo após o download dos arquivos para a configuração do Jasmine.
No momento que tento dar o comando: $ sudo mysql -u root -p ele me retorna a seguinte mensagem: bash: mysql: Comando não encontrado.
Isso seria algum problema com a versão do mysql que eu instalei que não está localizando o comando( instalei exatamente como foi solicitado no tutorial )??

Estou usando uma VM Debian 3.2.51-1
Obrigado a todos

[21] Comentário enviado por thomasdiego em 01/10/2015 - 11:21h

Bom dia VL,

Estou montando um servidor com Linuc CentOS na versão 6.7.
Nele instalei um CUPS + Webmin + Samba + MySQL + Apache + PHP + JASmine.
Tudo está instalado e configurado certinho, mas na última parte, o JASmine ao entrar na tela dele apresenta a mensagem de erro a seguir:

Users Top10
An error occured, please check the error messages.
“?>
Printers Top5
An error occured, please check the error messages.
“?>
Servers Top5
An error occured, please check the error messages.
“?>

Fui até os logins do Apache e verifiquei o seguinte erro:
cat /var/log/httpd/error_log

[Thu Oct 01 09:14:56 2015] [warn] ./mod_dnssd.c: No services found to register
[Thu Oct 01 09:39:00 2015] [error] [client 192.168.0.232] PHP Notice: Undefined index: iSearchString in /var/www/html/find.php on line 90, referer: http://192.168.0.220/index.php?section=summary
[Thu Oct 01 09:39:02 2015] [error] [client 192.168.0.232] PHP Notice: Undefined index: iSearchString in /var/www/html/find.php on line 90, referer: http://192.168.0.220/index.php?section=find&searchType=printer
[Thu Oct 01 09:39:03 2015] [error] [client 192.168.0.232] PHP Notice: Undefined index: iSearchString in /var/www/html/find.php on line 90, referer: http://192.168.0.220/index.php?section=find&searchType=user


Executei o comando:
cat /var/www/html/find.php

obtive a seguinte resposta:
<?php
/* JASmine, print accounting system for Cups.
Copyright (C) Nayco.

(Please read the COPYING file)

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */

/* Find.php: Provides a search page to find printers and users */

/* Includes */
include_once("libJasReports.php");

/* Displays the search form */
function display_search_form ($objectType, $searchString=""){

$me=htmlentities($_SERVER["PHP_SELF"]);
$searchString=htmlentities($searchString);
$objectType=(!empty($objectType))?htmlentities($objectType):"";
$check_user=($objectType=="" || $objectType=="user")?"checked ":"";
$check_printer=($objectType=="printer")?"checked ":"";
$check_server=($objectType=="server")?"checked ":"";

echo "<!-- Begin search form -->\n";
echo "<div id=\"search_form\">\n";
echo " <form name=\"search_form\" action=\"$me?section=find\" method=\"post\">\n";
echo " <label>\n";
echo " <input type=\"text\" name=\"iSearchString\" value=\"$searchString\" />\n";
echo " Text to search\n";
echo " </label>\n";
echo " <fieldset>\n";
echo " <legend>Object type</legend>\n";
echo " <label>\n";
echo " <input type=\"radio\" name=\"iSearchType\" value=\"user\" $check_user/>\n";
echo " Users</label>\n";
echo " <label>\n";
echo " <input type=\"radio\" name=\"iSearchType\" value=\"printer\" $check_printer/>\n";
echo " Printer</label>\n";
echo " <label>\n";
echo " <input type=\"radio\" name=\"iSearchType\" value=\"server\" $check_server/>\n";
echo " Servers</label>\n";
echo " </fieldset>\n";
echo " <input type=\"submit\" value=\"submit\" \>\n";
echo " <input type=\"reset\" value=\"clear\" />\n";
echo " </form>\n";
echo "</div> \n";
echo "<!-- End search form -->\n";
}

/* Function to fetch the results, and display them
TODO: WRITE A BETTER DESCRIPTION !!! */
function display_results($searchString, $objectType){
echo "<!-- Begin search results -->\n";
if(!$result=jas_searchObject($searchString, $objectType)){
echo "<p><em>Query failed.</em></p>\n";
return false;
}
else{
if ($result>0){
echo "<p>\n";
echo " <em>The following results were returned:</em>\n";
echo " <ul>\n";
foreach ($result as $line){
$lineDisplay=htmlentities($line);
echo " <li><a href=\"?section=show_$objectType&amp;$objectType=$line\">$lineDisplay</a></li>\n";
}
echo " </ul>\n";
echo "</p>\n";
}
else{
echo " <em>No result.</em>\n";
}
}
echo "<!-- End search results -->\n";
}

// Begin to process the page...
$iSearchString=$_POST['iSearchString']; (Essa é a linha 90 que o Apache acusa o ERRO)
if(empty($_POST['iSearchType'])){
if(empty($_GET['searchType']))
$iObjectType="user";
else
$iObjectType=$_GET['searchType'];
}
else
$iObjectType=$_POST['iSearchType'];
?>
<h2>Search for objects</h2>
<?php
/*echo "\$_POST['iSearchString']=".$_POST['iSearchString']."\n<br />";
echo "\$_POST['iSearchType']=".$_POST['iSearchType']."\n<br />";
echo "\$_GET['searchType']=".$_GET['searchType']."\n<br />";
echo "\$iSearchString=$iSearchString\n<br />";
echo "\$iObjectType=$iObjectType\n<br />"; */
?>
<h3>Help</h3>
<p>Some help...</p>
<?php
display_search_form($iObjectType, $iSearchString);

if (!empty($_POST['iSearchString'])){
echo " <h3>Results</h3>\n";
DB_connect($DB_host,$DB_login,$DB_pass);
DB_select($DB_db);
display_results($iSearchString, $iObjectType);
}
?>


Não faço ideia do que seja, será que alguém pode me ajudar???


[22] Comentário enviado por eder84 em 03/12/2015 - 16:57h

Boa tarde!

estou com problemas ao executar a linha de comando:
$ sudo mysql -u root -p print < jasmine.sql
retorna o erro abaixo,

ERROR 1064 (42000) at line 23: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(14) NOT NULL,
`job_id` tinytext NOT NULL,
`printer` tinytext NOT NULL,
`u' at line 3

[23] Comentário enviado por wallysonpsy em 05/09/2017 - 19:01h

Pessoal,

ao tentar imprimir qualquer documento em PDF o titulo da impressão fica como "Remote Downlevel Document"

Alguem sabe como resolver? alguem teve algum problema parecido.

usando debian 8.

[24] Comentário enviado por Lacordaire em 16/03/2018 - 11:55h

O Jasmine só roda em PHP5 para baixo? Ele é imcopatível com o PHP7 ou superior? Eu utilizo o Ubunto 16.04 e ele so tem a opção de instalar o PHP7. Estou com problema com o Jasmine e acredito que deve ser a incompatibilidade dele com o PHP7.

[25] Comentário enviado por Lacordaire em 17/03/2018 - 22:18h

Alguém para tirar minha dúvida?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts