De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Samba - Registro de impressões efetuadas

Colaboração: Fabiano Caixeta Duarte

Data de Publicação: 29 de Outubro de 2004

Você não precisa implementar quota de impressão mas seu chefe quer saber quem imprime o que? Se você usa samba, pode ser que esta dica te ajude :)

O Samba possui diversas variáveis para registro de informações sobre usuários e sua interação com o Samba. Algumas delas são relativas ao uso de compartilhamentos de impressão (impressoras). Créditos para Ali Faiez Ta ha e Joelson Vendramin pela informação!

A partir do uso do comando "print command" no smb.conf, podemos passar as variáveis para um script que terá du as responsabilidades:

  1. Registrar o trabalho de impressão
  2. Comandar de fato a impressão

Assim, um exemplo de uma entrada de compartilhamento no arquivo de configuração do Samba seria:

  [printers]
    browseable = no
    guest ok = yes
    writable = no
    printable = yes
    print command = /usr/local/bin/lpr-smb-logger '%p' '%s' '%U' '%M' '%J' '%c'

O script acima (/usr/local/bin/lpr-smb-logger) pode ter o seguinte conteúdo:

  # --------------------------------------------------------------------------
  #!/bin/bash
  
  # Parametros recebidos (linha de comando)
  # $1 - Nome da impressora (%p)
  # $2 - Nome do arquivo de spool (%s)
  # $3 - Login do usuario que submeteu o trabalho (%U)
  # $4 - Nome netbios da máquina que gerou o job (%M)
  # $5 - Nome do job informado pelo cliente Windows (%J)
  # $6 - Numero de paginas informado pelo Windows (%c)
  
  MYSQL=``which mysql``
  DBHOST=servidor
  DBNAME=banco
  DBUSER=usuario
  DBPASS=senha
  
  $MYSQL -h$DBHOST -u$DBUSER -p$DBPASS $DBNAME -e "insert into impressao values ( '$3', curdate(), curtime(), '$
  1', '$4', '$5', $6 )"
  
  # Submete o trabalho ao sistema de impressao Linux
  /usr/bin/lpr -r -P $1 $2
  
  # --------------------------------------------------------------------------

Note que como o registro está sendo feito em banco de dados, pode-se redirecionar os trabalhos de vários servi dores para um mesmo banco, centralizando o registro.

Depois, basta escolher a forma de apresentação dos registros efetuados. Nossa opção foi um arquivo em pdf gera do com php + fpdf. Mas isto é material para outra dica :)

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Fabiano Caixeta Duarte