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: 56.046 ]

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

Macromedia Studio 8 no Wine em detalhes

Livestation - Assista TV no seu GNU/Linux

Criando um servidor de impressão para residências e pequenas empresas com Linux

Avaliando Ubuntu 7.10 Gutsy Gibbon (Ubuntu Studio)

Taskwarrior, o Guerreiro das Tarefas - Gerenciar sua Lista TODO no Terminal

  
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 carlosalberto4ti 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 RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts