Sei sulla pagina 1di 10

Iniciando servidor de impresso atravs do CUPS + Jasmine

Fui cobrado aqui na empresa aonde eu trabalho sobre o nmero excessivo com gasto de papel nas impresses feitas pelos os usurios. Pesquisei diversas ferramentas, instalei o PaperCut em um servidor Win2003 Server s que o mesmo no me trouxe de forma eficiente um resultado bsico sobre as impresses dos meus usurios. Foi a ento que resolvi apelar para o site guru no mundo GNU/Linux, o VOL, e pesquisando no mesmo cheguei ao artigo de Bruno Dias Das Neves aonde ele coloca de forma eficiente e simples a instalao de um recurso chamado JASmine.

Relatrios de impresso em PHP com CUPS + JASmine

Notei que o recurso era exatamente aquilo que estava procurando, contabilizar o nmero de pginas por usurios. At a tudo perfeito. Mas vendo o resultado final do artigo verifiquei que nos screenshots apareciam os usurios e as quantidades de impresses, sendo que no meu somente contabilizava os usurios root e nobody. Ento resolvi disponibilizar este conhecimento, porque creio que conforme fala do meu amigo Adilson Rodrigues Bonan, no mundo livre "conhecimento adquirido e no transmitido conhecimento perdido". Pois ento vamos colocar a mo na massa!

Instalando o Apache, MySQL e PHP5


Para que tudo funcione em nosso relatrio primeiro devemos instalar os seguintes recursos:

Apache2 PHP5 MySQL Perl Python CUPS

Bom, vamos l! Vou abordar diversos caminhos pois como utilizo a distribuio Debian 5 Lenny Linux, senti as vezes algumas dificuldades em relao ao simples comando apt-get, e com isso

no dava certo a instalao: Na instalao do Debian resolvi instalar os seguintes recursos: servidor web, servidor de arquivos, servidor de impresso etc, tudo que tinha direito. rsss Com isso o Apache e o PHP5 j estavam instalados, faltando apenas a configurao mesmo, mas caso precise instalar pela linha de comando seguem os comandos: # apt-get install apache2 # apt-get install php5 Ou voc poder utilizar o seguinte comando: # apt-get install apache2 mysql-server php5 php5-mysql Se voc estiver utilizando, igual eu, a verso 5 Debian (Lenny), ir aparecer um erro referente ao mysql-server-5.0. Para corrigirmos este erro basta voc entrar em: # /etc/apt/nano sources.list E acrescentar as seguintes linhas: deb http://ftb.br.debian.org/debian/stable main deb-src http://ftp.br.debian.org/stable main Pronto! Salve tudo e d novamente um: # apt-get update Agora voc poder instalar novamente o mysql-server-5.0: # apt-get install mysql-server-5.0 Quando estiver instalando o MySQL ir lhe pedir o usurio e senha para o MySQL, no meu caso coloquei usurio root e defini uma senha **********. Para sabermos se o Apache2 est funcionando, abra o seu navegador de web e digite "localhost" ou use o seu IP, ir lhe retornar uma mensagem "It works!". Neste caso o Apache est configurado corretamente.

Agora vamos para configurao do PHP, para isso devemos entrar em: # /var/www/nano (tecle enter)

Digite o seguinte comando: <php phpinfo(); ?> Pronto, salve com o nome de info.php, lembrando que deve estar salvo em /var/www, isso na distribuio Debian. Para verificar se realmente o PHP est funcionando, digite no seu navegador de web a seguinte informao na barra de endereos: http://localhost/info.php Se o resultado for igual a imagem abaixo, est funcionando tudo corretamente.

Baixando os arquivos para instalao do JASmine


Feito a configurao dos outros programas como Apache2, MySQL, CUPS e PHP5, vamos agora para a instalao do JASmine, para isso necessrio baixarmos as trs etapas do mesmo no site:

http://jasmine.berlios.de/dokuwiki/doku.php?id=downloads

JASmine composto de trs pacotes, salve-os em sua mquina para que seja feita a instalao dos mesmos:

JASmine-MySQL-0.0.3.tar.bz2 JASmine-Backend-0.0.3.tar.bz2 JASmine-Web-0.0.3.tar.bz2

Antes de descompactar os arquivos, vamos primeiro criar uma base de dados no MySQL com o nome de print, ou se preferir coloque o nome que desejar. Aqui irei usar o exemplo do print conforme o artigo citado aqui no VOL de Bruno Dias. Vamos l! # mysql -u root - p password: ****** (aqui a senha que voc digitou quando solicitado na instalao do MySQL) mysql> CREATE DATABASE print; mysql> GRANT ALL ON print.* TO jasmine@CUPS_SERVER IDENTIFIED BY 'sql_password'; mysql> GRANT ALL ON print.* TO jasmine@WEB_SERVER IDENTIFIED BY 'sql_password'; mysql> GRANT ALL ON print.* TO jasmine@localhost IDENTIFIED BY 'sql_password'; mysql> FLUSH PRIVILEGES; mysql> exit Pronto! Terminamos de criar a base de dados, agora vamos descompactar o arquivo JASmine-MySQL-0.0.3.tar.bz2. JASmine-MySQL: # tar -jxvf JASmine-MySQL-0.0.3.tar.bz2 # cd JASmine-MySQL-0.0.3 Agora vamos importar o arquivo jasmine.sql para o nosso banco de dados que criamos anteriormente com o seguinte comando: # mysql -u root -p print <jasmine.sql Ir pedir a senha do seu banco de dados. Informe a senha que voc criou na instalao do MySQL. JASmine-Backend: Vamos descompactar o arquivo JASmine-Backend-0.0.3.tar.bz2: # tar -jxvf JASmine-Backend-0.0.3.tar.bz2 # cd JASmine-Backend-0.0.3 Dentro da pasta JASmine-Backend vamos descompactar o programa pkpgcounter2.10.tar.gz e instalar o Python. Lembre-se que o Python deve estar instalado no seu servidor, seno no ser possvel instalar o pkpgcounter. # tar -xvzf pkpgcounter-2.10.tar.gz # cd pkpgcpunter-2.10 # python setup.py install Depois de instalar o pkpgcounter, vamos voltar na pasta JASmine-Backend e copiar o

script em Perl chamado jasmine para a pasta /usr/lib/cups/backend, depois de copiado vamos na pasta backend em /usr/lib/cups/backend e vamos atribuir a permisso 755 no arquivos jasmine. Lembre-se que o Perl deve estar instalado no seu servidor seno o script no vai funcionar. # cp jasmine /usr/lib/cups/backend/ # cd /usr/lib/cups/backend # chmod 755 jasmine Vamos editar o arquivo jasmine e configurar nosso banco de dados. Use o editor de sua preferncia, aqui estou usando o vi. # vi jasmine Procure pelas linhas do MySQL: my $Dbhost="MYSQL_HOST"; ----> Host onde se encontra o banco de dados. my $Dblogin="MYSQL_LOGIN"; ----> Login do usurio que vai acessar o banco. my $Dbpassword="MYSQL_PASS"; ----> Senha do usurio que vai acessar o banco. my $DBdatabase="MYSQL_DB"; ----> Nome do banco de dados do Jasmine. E altere para: my $DBhost="localhost"; my $DBlogin="jasmine"; my $DBpassword="sql_password"; my $Dbdatabase="print"; Procure pela linha: my $Debug_Mode=1; E altere para: my $Debug_Mode=0; Salve o arquivo e feche, reinicie o CUPS com o comando: # /etc/init.d/cups restart

Instalando o JASmine-Web para visualizarmos nosso relatrio


JASmine-Web-0.0.3: Lembre-se: O Apache deve estar instalado com suporte a PHP5 e funcionando.

Descompacte a pasta JASmine-Web-0.0.3.tar.bz2, renomeie a pasta JASmine-Web0.0.3 para jasmine e coloque na pasta onde o apache procura o site. Ex.: /srv/www/htdocs/ # tar -xvjf Jasmine-Web-0.0.3.tar.bz2 # mv Jasmine-Web-0.0.3 /srv/www/htdocs/jasmine Entre na pasta jasmine que voc acabou de mover, procure pelo arquivo config.php.dist e copie para o mesmo diretrio com o nome config.php. # cd /srv/www/htdocs/jasmine # cp config.php.dist config.php Agora vamos editar o arquivo config.php e configurar nosso banco de dados. Use o editor de sua preferncia, no meu caso estou usando o vi. # vi config.php Procure pelas linhas: // Database vars $DB_host="MYSQL_SERVER"; ---> nome do host onde esta o banco de dados. $DB_login="MYSQL_USER"; ----> login do usurio que vai acessar o banco. $DB_pass="MYSQL_PASSWORD"; ----> senha do usurio que vai acessar o banco. $DB_db="MYSQL_DB"; ----> nome do banco de dados. Altere para: // Database vars $DB_host="localhost"; $DB_login="jasmine"; $DB_pass="sql_password"; $DB_db="print"; Salve o arquivo e feche. Configure o apache para que ele possa reconhecer o php5 e abrir o index.php no arquivo de configurao do apache, que fica em /etc/apache2/httpd.conf. Feito a configurao, reinicie o apache com o comando: # /etc/init.d/apache2 restart Pronto, terminamos a instalao. Vamos testar? Digite no seu navegador de web: http://localhost/jasmine ou http://seuip/jasmine e voc j ver o resultado.

Integrando os usurios do Windows com o Linux para que sejam exibidos no seu relatrio
Bom, para que seus usurios sejam exibidos no seu relatrio conforme a imagem exibida do meu jasmine anteriormente, voc precisar acertar as configuraes do seu SAMBA para que as mquinas da rede Windows possam enxergar a mquina que ir servir como servidor de impresso. Para isso segue abaixo o exemplo do meu smb.conf: Ex.: # Samba config file created using SWAT # from UNKNOWN () # Date: 2010/03/17 14:56:29 [global] workgroup = SEU DOMINIO OU GRUPO server string = Nome do seu servidor (Ex.: Servidor de Impresso) interfaces = 192.168.1.0/255.255.255.0, eth0 obey pam restrictions = Yes passdb backend = tdbsam pam password change = Yes passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . unix password sync = Yes #(Aqui mude para Yes pois esta opo permite a sincronizao das senhas UNIX e SMB) syslog = 0 log file = /var/log/samba/log.%m max log size = 1000 domain logons = Yes #(Se voc ir logar no domnio coloque Yes)

os level = 100 #(Neste caso a configurao padro 20 mude para 100) dns proxy = No wins support = Yes panic action = /usr/share/samba/panic-action %d hosts allow = 192.168.1. #(Aqui e classe da rede aonde todos os computadores tenham acesso ao servidor linux de impresso) [homes] comment = Home Directories valid users = %S create mask = 0700 directory mask = 0700 [printers] comment = All Printers path = /var/spool/samba create mask = 0700 printable = Yes [print$] comment = Printer Drivers path = /var/lib/samba/printers [home] path = /home guest ok = Yes Neste meu caso utilizei o swat para fazer as configuraes do meu Samba. As informaes no link abaixo foram de grande utilidade para obter o resultado esperado.

Adicionar usurio no UNIX e SMB para que voc faa a integrao WINDOWS/LINUX
Digitar os seguinte comando: # useradd -g computadores /dev/null -s /bin/false informatica$ Sendo que computadores o grupo e informatica o nome da estao Windows que voc quer que conecte ao GNU/Linux. Pode ser o nome do usurio tambm. Nunca se esquea de colocar o $ no final do nome da estao ou do usurio! Continuando: # smbpasswd -a -m informatica

# useradd -g computadores informatica # passwd informatica (digitar a senha duas vezes) # smbpasswd -a informatica (digitar a senha duas vezes) Pronto! Agora sua estao/usurio est adicionada no grupo computadores. Lembrando que o grupo e o nome da estao/usurio s um exemplo. Agora vamos verificar a conexo do Windows com o servidor de impresso Linux: 1. 2. 3. 4. Meus Locais de Rede Toda a Rede Rede Microsoft Windows Digitar o endereo do servidor Linux por ex: \\192.168.1.xxx

Se tudo ocorrer bem ir lhe pedir um usurio e senha, digitar o nome do usurio, que no nosso caso informatica e senha que estabelecemos para ele, caso esteja tudo normal ir aparecer o home e as impressoras instaladas.

Instalando as impressoras
Para instalarmos a impressora no CUPS, que no meu caso uma impressora de rede, efetuei os seguintes passos: 1. Abra o navegador e digite http://localhost:631; 2. Clique em Administration 3. Add Printer Ir lhe pedir para colocar o nome, localizao e a descrio da impressora, isto fica a seu critrio, no meu caso como as impressoras so todas padronizadas no tive muita dificuldade na hora da instalao, pois todas so HP. Continuando... 4. Device: AppSocket/HP JetDirect (deixar como est) clicar em continue e ir aparecer a palavra socket logo em seguida. 5. Digitar assim para que o jasmine contabilize as impresses: jasmine:socket://onumerodoipdaimpressora:9100 Ex.: jasmine:socket://192.168.1.200:9100 (verificar qual a classe de rede que voc esta utilizando) Os passos a seguir so a escolha do fabricante, o driver etc. Feito isto tudo faa uma impresso de teste na impressora instalada.

Para verificar se contabilizou em seu relatrio, entre em qualquer navegador e digite: http://localhost/jasmine ou http://onumerodoipdoseuservidor/jasmine E ter o seguinte resultado: Usurio que imprimiu, quantidade de impresso, impressora e servidor.

Alterando o relatrio
Como vocs j puderam notar em alguns screenshots do meu relatrio de impresses, eles esto em portugus. Para que fique assim basta ter algum conhecimento em html ou em php e alterar os campos desejados. Os arquivos esto em /var/www/jasmine, altere os arquivos com extenses em php. Bom pessoal, seria somente isto, espero ter contribudo um pouco mais para o mundo livre.

Potrebbero piacerti anche