curibocas.wordpress.com/2009/07/15/ibquota-gerenciador-de-impressao-por-usuario/
1/8
enciador 18/12/12 de Impresso por Usurio ::: Blog Curibocas & Impelegos :::
As quotas e tentativas de impresso so guardadas em um banco de dados (MySQL). A partir deste banco possvel ler e atualizar informaes dos usurios via WEB, atravs do Gerenciador Grfico (GG) do IBQUOTA (a parte WEB feita em PHP). Como funciona o IBQUOTA? Ele funciona entre o SAMBA e o Gerenciador de Impresso (Ex. CUPS). O Samba responsvel pela autenticao e compartilhamento entre computadores (FreeBSD, Linux (http://www.vivaolinux.com.br/linux/), Windows etc). Com ele, ainda, possvel at compartilhar impressoras. Quando, por exemplo, um usurio est conectado em uma mquina Windows e envia um arquivo para imprimir, o SAMBA pega este arquivo e o coloca na fila de impresso da Impressora. A partir deste ponto o Gerenciador de Impresso que faz o servio de enviar este arquivo para a impressora propriamente dita. Para o IBQUOTA funcionar so criadas duas filas de impresso: VIRTUAL: A fila de impresso virtual compartilhada atravs do SAMBA e configurada para que todos JOBs entrem como "pausados". REAL: A fila de impresso real NO compartilhada atravs do SAMBA, mas configurada para imprimir tudo que chegar. O IBQUOTA simplesmente fica checando se chegou algum job na fila de impresso virtual, se chegar, verificado se o dono da impresso possui quota, se sim, o documento movido para fila de impresso real e as informaes da impresso so gravadas no banco de dados. O importante que a impresso fica transparente para o usurio que quer imprimir. E ainda que o IBQUOTA uma soluo GRTIS e LIVRE!" Instalao Primeiramente se faz necessrio a instalao completa de um ambiente com sistema operacional baseado no Linux (http://www.vivaolinux.com.br/linux/) com kernel mnimo de 2.4.x.x mas o recomendado o kernel 2.6.x.x. A distribuio fica a critrio e gosto, podendo ser desde Slackware, Red Hat, CentOS, Debian, Fedora, SuSE todas funcionam. Nos testes ele foi implementado em um CentOS, mas qualquer distribuio funciona. Em segundo, precisamos de alguns servios j pr-instalados e em perfeito funcionamento: SAMBA CUPS MYSQL APACHE com mdulo PHP5
curibocas.wordpress.com/2009/07/15/ibquota-gerenciador-de-impressao-por-usuario/ 2/8
enciador 18/12/12 de Impresso por Usurio ::: Blog Curibocas & Impelegos :::
Uma cpia do fonte do IBQUOTA, disponibilizado em: ibquota2.2.2.tar.gz (http://www.ib.unicamp.br/ibquota/ibquota2.2.2.tar.gz) Caso deseje baixar pelo terminal no Linux, utilizaremos o bom e velho WGET: # wget http://www.ib.unicamp.br/ibquota/ibquota2.2.2.tar.gz (http://www.ib.unicamp.br/ibquota/ibquota2.2.2.tar.gz) Prximo passo alocar este pacote que baixamos para um diretrio para que possamos trabalhar sem fazer uma baguna. Mova o pacote para o /opt/: # mv ibquota2.2.2.tar.gz /opt/ Agora vamos para a instalao: 1. Descompactar o pacote .tar.gz: # tar -xzvf ibquota2.2.2.tar.gz # cd ibquota2 2. Editar o arquivo de configurao: # vi ibquota.conf Altere os parmetros de banco de dados / usurio do banco etc conforme sua necessidade. Seguem abaixo os principais parmetros que voc deve alterar: #Tempo de espera em segundos TEMPO_DE_ESPERA 10 #Path do Comando LPR PATH_LPR /usr/local/cups/bin/lpr #Path do Comando LPSTAT PATH_LPSTAT /usr/local/cups/bin/lpstat #Path do Comando LPRM PATH_LPRM /usr/local/cups/bin/lprm #path para o comando mysql PATH_MYSQL /usr/local/mysql/bin/mysql #nome do banco de dados IBQuota #Padrao: IBQUOTA NOME_BANCO IBQUOTA #host do banco de dados #Padrao: localhost HOST_BANCO localhost
curibocas.wordpress.com/2009/07/15/ibquota-gerenciador-de-impressao-por-usuario/ 3/8
enciador 18/12/12 de Impresso por Usurio ::: Blog Curibocas & Impelegos :::
#Porta que o PORTA_BANCO #Padrao: 3306 PORTA_BANCO 3306 #login para acesso ao banco de dados USUARIO_BANCO LOGIN #senha para acesso ao banco de dados SENHA_BANCO SENHA Obs.: "NOME_BANCO", "HOST_BANCO" etc so parmetros e no devem ser alterados, pois no um valor, ele faz referencia ao sistema, portanto NO altere, apenas altere o que vem a sua direita, que so os valores. 5. Criar o banco de dados. Entrar no MySQL: # /usr/local/mysql/bin/mysql -p Digitar a senha de root do banco. Executar o script SQL ibquota2.sql: mysql> source ibquota.sql Ser criado automaticamente o banco de dados do IBQUOTA. Obs.: No crie um banco de dados e depois importe as querys em SQL, pois o SQL j cria um database, a menos que voc saiba SQL e deixe s o que interessa que a adio das tabelas e campos. SQL bem simples. 6. Colocar o ibquota.pl para levantar automaticamente: Linux: Copiar o script de inicializao 7. Configurar o GG (Gerenciador Grfico). Copie a pasta GG, para seu diretrio do Apache, podendo ser em /var/www/html, /var/www/, /usr/local/htdocs/. 8. No arquivo de configurao do PHP (php.ini) o argumento "register_globals" deve estar setado como "On" para que o GG funcione. Ex: register_globals=Off Altere para: register_globals=On O php.ini pode ser encontrado em /etc/php5/apache2/php.ini, /etc/php.ini, /etc/apache2/conf.d/php5/php.ini.
curibocas.wordpress.com/2009/07/15/ibquota-gerenciador-de-impressao-por-usuario/ 4/8
enciador 18/12/12 de Impresso por Usurio ::: Blog Curibocas & Impelegos :::
9. Acesse pelo seu browser: http://ip_do_servidor/gg (http://ip_do_servidor/gg) 10. Cadastre as informaes iniciais no GG: Cadastro de Grupo Cadastro de Usurio Cadastro de Impressora Atribuir Poltica de Impresso FAQ Perguntas frequentes do IBQUOTA O IBQUOTA pode ser instalado em um Servidor de Impresso Windows? NO, somente em sistemas operacionais como o FreeBSD, Linux (http://www.vivaolinux.com.br/linux/), OpenBSD. Sistemas Unix em geral. possvel montar um servidor de impresso com software livre? SIM. Um servidor de impresso constitudo de Sistema Operacional (Ex: FreeBSD, GNU/Linux Debian etc), sistema para fazer autenticao e compartilhamento de dispositivos (Ex: SAMBA) e de um gerenciador de impresso (Ex: CUPS). E caso necessite de controle de quota de impresso por usurio, pode utilizar o IBQUOTA. O IBQUOTA tambm gerencia quota de disco? NO, o gerenciamento de quota de disco nativo no Sistema Operacional. O IBQUOTA suporta o gerenciador de banco de dados PostgreSQL? Ainda no, hoje somente h o suporte para MySQL, mas est previsto para a verso 2.X funcionar com o PostgreSQL. Se um arquivo contm 4 pginas e eu utilizar o "Pginas por folha" com o valor 4, quantas pginas sero debitadas da minha quota? O IBQUOTA ir computar uma nica pgina da quota, pois o que realmente interessa a quantidade de folhas que sair da impressora. Obs.: Foi testado em uma impressora HP LJ 1220. Por que o IBQUOTA deve ser executado como root? Porque somente como root possvel remover a impresso de um usurio qualquer.
Perguntas tcnicas
O que o erro que aparece no meu arquivo de log?
curibocas.wordpress.com/2009/07/15/ibquota-gerenciador-de-impressao-por-usuario/ 5/8
enciador 18/12/12 de Impresso por Usurio ::: Blog Curibocas & Impelegos :::
09:48:45 19-12-2005 ERRO Problema na formao da SQL, verifique: select distinct impressora.fila_virtual from impressora, conjunto_impressora,politica where conjunto_impressora.cod_impressora=impressora.cod_impressora and conjunto_impressora.cod_politica=politica.cod_politica; 10:08:13 19-12-2005 ERRO Problema na formacao da SQL, verifique: insert into impressoes values (0,4,1,1,SYSDATE(),NOW(),1,NONE,0,NONE,,1); Geralmente quando ocorre esta mensagem de erro no log porque o PATH_SPOOL no foi corretamente cadastrado no Gerenciador Grfico. O valor do PATH_SPOOL se encontra no arquivo de configurao do CUPS, cupsd.conf. E, o argumento que o contem eh: "RequestRoot". Obs. 1: O CUPS e o SAMBA utilizam PATHs diferentes para guardar o arquivo temporrio de impresso, ou seja, cuidado para no confundir. Obs. 2: Este problema tambm ocorre quando o IBQUOTA no consegue identificar o formato do arquivo de impresso. Este problema pode ser corrigido com a troca do driver de impresso. Erro no Gerenciador Grfico (GG): "Fatal error: Call to undefined function: mysql_connect()" ? O erro que aparece no browser: Fatal error: Call to undefined function: mysql_connect() in /var/www/html/gg/class_db.php on line 40 Quer dizer que o mdulo php-mysql (para conexo entre o PHP e o MySQL) no foi instalado, por este motivo o PHP no reconhece a funo mysql_connect(). Para solucionar o problema preciso pesquisar como instalar o PHP com suporte ao banco de dados MySQL. MENSAGEM DE ERRO: lpr: error unable to print file: client-error-document-formatnot-supported Quando aparece a mensagem de erro acima, quer dizer que o cliente (mquina de onde foi enviado o job) est com a configurao da impressora errada. Quer dizer que o PPD (arquivo que descreve a impressora) est errado. Procure outro arquivo PPD e modifique a configurao da impressora atual. Aps isto, remover e adicionar novamente a impressora na estao. Com o PPD errado, o cliente gera um formato de arquivo de impresso (Ex PS, PCL etc) que a impressora no entende. Finalizando
curibocas.wordpress.com/2009/07/15/ibquota-gerenciador-de-impressao-por-usuario/ 6/8
enciador 18/12/12 de Impresso por Usurio ::: Blog Curibocas & Impelegos :::
Para aqueles que gostam de uma apresentao ou ver imagens do sistema, a vo:
(http://www.vivaolinux.com.br/imagens/artigos/comunidade/1247238091.imagem1.gif)
(http://www.vivaolinux.com.br/imagens/artigos/comunidade/imagem2.gif)
Extras e agradecimentos
Todos ns sabemos o quanto doloroso achar drivers de diversas impressoras no Linux (http://www.vivaolinux.com.br/linux/), a maioria temos que usar drivers antigos ou HP5MP, os sites abaixo so quase repositrios: www.linuxfoundation.org OpenPrinting (http://www.linuxfoundation.org/en/OpenPrinting) openprinting.org driver_list (http://openprinting.org/driver_list.cgi) Obrigado a todos que leram este artigo e informo que o mesmo uma rplica da documentao oficial do IBQUOTA. Todos os artigos que publico no VOL so originrios de meu blog, que pode ser acessado em: www.blog.paulojr.info (http://www.blog.paulojr.info/) Abraos a todos, Paulo Roberto Junior
1.
jorge disse: 18/10/2010 a 17:29 Amigo, me conte uma coisa? Vc consegui fazer funcionar este treco? Sim, pq to enrolado com isso a uma semana e no tem Cristo que faa funcionar Mais triste ainda que parece que esta tudo certo!!! no retorna erro de especie alguma. MAS NO COLETA UMA UNICA IMPRESSAO!!! ser que o amigo poderia me dar uma fora? No aguardo de contato! Abr; Vilson Jorge Comentar David disse: 13/10/2011 a 21:44 Jorge, roda o ibquota.pl na mo e coloca em modo debug, dai ele vai mostrando tudo pra vc. Acho q vc deve ter feito algo errado, o ibquota simples e bem estvel. Comentar