Servidor de impressão com Ubuntu e Pykota

Na instituição em que trabalho tínhamos muitos problemas com impressão. Funcionários que imprimiam coisas desnecessariamente, ai veio a necessidade de um servidor de impressão que controlasse cotas e que os dados da impressão fossem gravados em um banco de dados.

[ Hits: 43.104 ]

Por: Neilon Mauricio Freitas Fernandes em 29/04/2010


O problema e a solução



Na instituição em que trabalho tínhamos muitos problemas com impressão. Funcionários que imprimiam coisas desnecessariamente, ai veio a necessidade de um servidor de impressão que controlasse cotas e que os dados da impressão fossem gravados em um banco de dados.

Depois de vários testes com outros softwares e não obtendo êxito, resolvi pesquisar um pouco mais sobre o Pykota. Utilizei a distribuição Ubuntu 8.04 Linux, porém deve funcionar sem problemas nas versões mais novas do Ubuntu e em distribuições baseadas em Debian.

Instalando e configurando

Instale as dependências:

# apt-get install apache2 postgresql python-pam pkpgcounter python-jaxml python-pysnmp4 python-osd python-ldap python-egenix-mxdatetime python-mysqldb python-pysqlite2 python-pygresql vim python-reportlab php5

Agora iremos reconfigurar o phppgadmin para termos acesso ao frontend do PostgreSQL:

# apt-get install phppgadmin
# dpkg-reconfigure phppgadmin


Adicionar ao arquivo /etc/postgresql/pg_hba.conf a linha:

host   all       all       10.100.0.0/24         md5

Primeiramente instale o pacote subversion para download do pacote via svn:

# apt-get install subversion

Baixe o pacote do Pykota no site do Pykota ou com o comando:

# svn co http://svn.pykota.com/pykota/trunk pykota

Baixe o pacote pkipplib no site do Pykota ou via svn:

# svn co http://svn.pykota.com/pkipplib/trunk pkipplib

Entre na pasta que foi baixada:

# cd pkipplib

Instale o pacote pkipplib:

# python setup.py install

Entre na pasta para realizar os procedimentos:

# cd ../pykota

Checando as dependências de instalação:

# python checkdeps.py

Se as dependências estiverem todas instaladas, podemos continuar com a instalação.

Agora iremos realmente instalar o Pykota:

# python setup.py install

Devemos agora adicionar as seguintes linhas ao sudo, dando privilégios aos comandos que o Pykota utiliza.

# visudo

www-data ALL=NOPASSWD :/usr/local/bin/edpykota
www-data ALL=NOPASSWD :/usr/local/bin/pkprinters
www-data ALL=NOPASSWD :/usr/local/bin/pkusers
www-data ALL=NOPASSWD :/usr/local/bin/dumpykota
www-data ALL=NOPASSWD :/usr/local/bin/repykota

Crie a pasta /etc/pykota e copie alguns arquivos de configuração:

# mkdir /etc/pykota

Criando o grupo Pykota para o sistema:

# groupadd Pykota

Criando o usuário pykota e adicionando-o ao grupo Pykota:

# useradd --system --group Pykota --home /etc/pykota pykota

Adicionando o usuário pykota ao grupo de impressão lp:

# adduser lp pykota

Mude a senha do usuário postgres.

# su postgres

psql template1

# ALTER USER postgres WITH PASSWORD 'senha';

Criando o banco e populando as tabelas:

Entre na pasta /usr/share/pykota/postgresql.

# cd /usr/share/pykota/postgresql

Digite os seguintes comandos para criar e popular a base de dados:

# su postgres

psql -f pykota-postgresql.sql template1

Pronto, agora o banco está criado e as tabelas populadas e prontas para o uso.

Agora se quisermos modificar a senha dos usuários do Pykota para acesso ao banco, basta apenas digitar os seguintes dados abaixo:

# su postgres
$ psql template1

# ALTER USER pykotauser WITH PASSWORD 'senha';
# ALTER USER pykotaadmin WITH PASSWORD 'senha';
# \q


E basta copiarmos os arquivos de configuração para o local correto:

# cp /usr/local/share/pykota/conf/pykota.conf.sample /etc/pykota/pykota.conf
# cp /usr/local/share/pykota/conf/pykotadmin.conf.sample /etc/pykota/pykotadmin.conf


Modificar as linhas com as seguintes informações no pykota.conf e no pykotadmin.conf:

storagebackend : pgstorage # Tipo do banco de dados
storageserver : localhost # Endereço do servidor
storagename : pykota # Nome do banco
storageuser : pykotauser # Nome usuário do banco
storageuserpw : readonlypw # Senha do usuário do banco

Adicionar ao arquivo /etc/pykota/pykota.conf as seguintes linhas:

accounter: software(/usr/bin/pkpgcounter)
preaccounter: software(/usr/bin/pkpgcounter)

Agora vamos copiar o backend responsável pela geração dos relatórios:

# cp /usr/local/share/pykota/cupspykota /usr/lib/cups/backend/

Dê as permissões necessárias para funcionamento:

# chmod 700 /usr/lib/cups/backend/cupspykota

Reinicie o serviço cups para que possa pegar as novas configurações:

# /etc/init.d/cupsys restart

Pronto! Agora o Pykota está instalado e configurado.

    Próxima página

Páginas do artigo
   1. O problema e a solução
   2. Adicionando permissões de impressão no Pykota
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Convocação da Seleção Brasileira do Software Livre

Formatando texto no Open Office

Gravação de CDs com o K3B

Softwares para Biólogos no Linux

IBM Omni Find Yahoo: Um mecanismo de busca corporativa em seu servidor

  
Comentários
[1] Comentário enviado por joserf em 29/04/2010 - 13:45h

olá amigo, existe uma interface grafica para visualizar as impressoes dos usuarios, estilo jasmine ? . abraço

[2] Comentário enviado por neilomfreitas em 05/05/2010 - 11:53h

Existe uma interface gráfica chamada phppykotaadmin, porém há algum tempo o pessoal não dá suporte. Possui alguns bugs, ele é bem feio. Estamos criando uma ferramenta para visualização, acho que até no máximo no final do mês devemos estar publicando.

[3] Comentário enviado por andbecker em 09/06/2010 - 03:18h

ótima matéria

tudo está certo até:
Entre na pasta /usr/share/pykota/postgresql.
# cd /usr/share/pykota/postgresql

onde faltou a pasta "local" no endereço, onde o correto é: /usr/local/share/pykota/postgresql

e quando chega em:
E basta copiarmos os arquivos de configuração para o local correto:

falta um "su usuário", pois o user postgres não tem privilégio para copiar

e eu tenho uma dúvida: na linha # /etc/init.d/cupsys restart
pede que o cupsys seja iniciado, mas eu só tenho um arquivo cups nesse diretório, é ele mesmo que deve ser reiniciado?


[4] Comentário enviado por carlos007anjo em 15/01/2011 - 16:43h

Por acaso , já tem (source + licença livre) o administrador para o pykota ?

[5] Comentário enviado por fba em 11/03/2011 - 14:18h

Ola é importante não fazer comentários depois da configuração como no caso:
storagebackend : pgstorage # Tipo do banco de dados
pois o sistema não identifica como sendo um cometário e gera erro
no lugar de:
storagebackend : pgstorage # Tipo do banco de dados
storageserver : localhost # Endereço do servidor
storagename : pykota # Nome do banco
storageuser : pykotauser # Nome usuário do banco
storageuserpw : readonlypw # Senha do usuário do banco
usar:
storagebackend : pgstorage
storageserver : localhost
storagename : pykota
storageuser : pykotauser
storageuserpw : readonlypw

e no lugar de:
accounter: software(/usr/bin/pkpgcounter)
preaccounter: software(/usr/bin/pkpgcounter)
para mim não estava contando as páginas, para resolver alterei para:
accounter: software()
preaccounter: software()

[6] Comentário enviado por fba em 20/01/2012 - 15:54h

Erro ao configurar o pykota no cups 1.5, com a seguinte mensagem:

printer-state=3(idle)
printer-state-message="TypeError: 'NoneType' object is not subscriptable"
printer-state-reasons=none

para resolver o problema bastou alterar as seguintes linhas no /etc/cups/cupsd.conf
de:
JobPrivateAccess default
JobPrivateValues default
para:
JobPrivateAccess all
JobPrivateValues none

Fonte:
http://comments.gmane.org/gmane.comp.printing.cups.general/28645

[7] Comentário enviado por canelabh em 28/01/2014 - 09:43h

O relatório que esta gerando só identifica o usuário e conta o número de impressões e mais nada, é só isso mesmo?

[8] Comentário enviado por nandohvisk em 02/06/2014 - 11:39h

serve para ambientes windows? preciso usar o samba?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor HostGator.
Linux banner
Linux banner
Linux banner

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts