Filtrando trabalhos de impressão...
Publicado por Marcelo de Souza Sant´Anna 27/03/2005
[ Hits: 4.785 ]
Homepage: http://paginas.terra.com.br/informatica/marcelosantanna
Este script filtra os trabalhos de impressão entre o samba e o cups.
Lembre-se de colocar este script em /usr/bin
Instale o CUPS e configure uma impressora. Ex printer1
Instale o SAMBA e compartilhe esta, acrescentando estas linhas no smb.conf:
...
[printer1]
...
printer name = printer1
print command = echo "`date`*%p*%f*%J*%z*%c*%u*%m--%M" >> /tmp/smbprnprinter1; \
prnfltprinter1; \
lp -d %p %f; rm %f
#!/bin/bash # Arquivo de log criado pelo samba, cujo conteudo e: # DATA*IMPRESSORA*TRABALHO*TITULO*TAMANHO*PAGINAS*USUARIO*COMPUTADOR # # DATA - Contem a data atual, no momento do pedido de impressao # IMPRESSORA - Contem o nome da impressora # TRABALHO - Contem o nome do trabalho gerado pelo samba # TITULO - Contem o nome do titulo do documento # TAMANHO - Contem o tamanho, em Kilobytes, do documento # PAGINAS - Contem o numero de paginas pedidas.(Dependendo do gerenciador) # USUARIO - Contem o nome do usuario que esta fazendo o pedido a impressao # COMPUTADOR - Contem o nome do computador, seguido do endereco IP, que esta solicitando a impressao. # # EXEMPLO: # # Mon Oct 25 04:54:38 BRST 2004*printer1*smbprn.00002172.ZFpgbN*Evol*2945k*0*santanna*cir-santanna--192.168.0.10 # # INLOGTOT=/tmp/smbprnprinter1 # verifica se o arquivo existe if [[ -e $INLOGTOT ]] then # variavel TLINHAS recebe o total de linhas TLINHAS=$(wc -l $INLOGTOT | cut -d " " -f1) # cria um loop, o numero de vezes de acordo com a quantidade de linhas for LINHA in $(seq 1 $TLINHAS) do # recebe o conteudo de cada linha, uma por loop. CONTEUDOLINHA=$(head -n $LINHA $INLOGTOT | tail -n 1) # variavel TRABALHO recebe o nome do trabalho, do documento, gerado pelo samba TRABALHO=$(echo $CONTEUDOLINHA | cut -d "*" -f3) # variavel TITULO recebe o titulo do documento TITULO=$(echo $CONTEUDOLINHA | cut -d "*" -f4) # Todos os trabalhos que nao tiverem no titulo algumas destas palavras serao excluidos... if [[ $(echo $TITULO | egrep -i -v '(evol|seagate|report|viewer|preview|client)') ]] then rm -f /var/spool/samba/$TRABALHO fi done rm -f $INLOGTOT fi
Transforme a manpage e infopage em pdf e texto
Antivírus no Linux para usuários de domínio
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como implementar Raid (0, 1, 5, 6, 10 e 50)
fusermount3 no Ubuntu 25.10 - mantenha o perfil do AppArmor
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Criação de diretórios e aplicação de restrições de acesso no Linux
Como programar um software que seja utilizado para coleta de dados em ... (0)
Podem me chamar de 1mbecil :) (11)
Incluir versão do projeto no executavel criado no Lazarus com Linux (0)
diferença entre o Tor baixado pelo Gerenciador de Aplicativos e o Tor ... (9)









