O sistema de impressão acabou ficando muito grande e por isso pode
parecer complexo de entender, por isso vamos tentar explicar a
estrutura de diretórios que foi utilizado no nosso sistema. Assim
ficará mais fácil, posteriormente descutir o que cada script faz.
/usr/local/printers/ - diretório "raiz" do sistema de impressão.
- filtros/ - Aqui estão os filtros de impressão
(as, filtro, ae) e outros scripts auxiliares para os
filtros.
- scripts/ - Aqui estão alguns scripts relacionados
ao sistema de quotas; como inicializar as quotas do mês, ou
gerar todos os arquivos e diretórios do sistema
(atualiza_mes, inicializa_quotap, montaquota). Também
existe um utilitário interessante soma_do_mes que
escreve quantas folhas foram impressas naquele mês (atual).
- logs/ - Neste diretório estão os "logs" de tudo que
acontece que o sistema de impressão. Só que na verdade aqui é
guardado muito mais do que os logs (isto será visto mais a frente
na exposição dos scripts).
- cancelados/ - informações e diretórios onde ficam
os usuários cancelados (esse diretório não é implícito no
sistema, mas feito "na mão").
- quotas/ - Esses são os arquivos de quotas como
devem ser quando estão ZERADOS. Existe um arquivo para cada
usuário da rede. O formato desse arquivo é:
O arquivo de quota consiste de 3 números. O primeiro é o
número de páginas já impressas neste mês. O segundo
corresponde ao número total de páginas imprimíveis por um
determinado usuário. E o terceiro número é o número de páginas
que algum admin "emprestou" para o usuário. (OBS: Esse
"empréstimo" deve ocorrer sob condições bem específicas e o
sistema se encarrega de retirar essa folhas do próximo mês).
Então por exemplo se olhar no arquivo 'livio' posso ter o
seguinte conteúdo:
35/50/5
Indicando que já imprimi 35 folhas. O máximo que posso
imprimir (normalmente) é de 50 folhas. E que ganhei um
empréstimo de 5 folhas NESTE mês. Ou seja AINDA posso imprimir
[IMAGE png] folhas. Com o agravante de que se eu usar todas
essas 20 folhas, no mês seguinte vou começar o mês:
5/50/0
Ou seja, já utilizei 5 das minhas 50 folhas para imprimir.
- tmp/ - diretório onde são guardados arquivos
temporários durante alguma impressão.
- varzea/ - diretório onde é guardado todas as
operações (impressões, etc) realizadas com a impressora
várzea. Neste diretório existem outros diretórios que
indicam a data (o mês) das impressões. Assim temos os logs
separados por mês e temos um link (atual) apontando para o mês
atual. Todos os diretórios estão no formato ano-mês (06-1999,
02-2000, 10-2003, etc).
- atual/ - No mês atual (que é na verdade um link
para o diretório do mês atual, conforme descrito acima) temos
todas as informaçãoes de impressões realizadas no mês. Tanto
dos usuários quanto da impressora em geral.
- log - Arquivo que loga todas as tentativas de
impressão feita no mês.
- usuarios/ - Diretório que contém todos os
usuários (em forma de subdiretório).
- usuarios/(username)/ - O diretório do
respectivo usuário username. Neste diretório existem 3
coisas. O arquivo log que guarda todas as
tentativas de impressão do usuário username. O
arquivo quota que contém a quota do usuário
conforme o padrão de arquivo descrito acima e um diretório
arquivos que guarda uma cópia do arquivo recebido
pelo script e uma outra cópia filtrada.
/usr/local/quotap/ - diretório "raiz" do sistema de quotas.
- scripts/ - Por enquanto temos aqui a fonte do
programa quotap (que colocamos em /usr/local/bin) que lê
o arquivo do usuário em
/usr/local/quotap/usuarios/atual/(login_do_usuário) e imprime
uma mensagenzinha para o usuário indicando sua quota de papel do
mês atual.
- usuarios/atual/ - Aqui existe um arquivo para cada
usuário indicando sua quota. Isto é apenas uma cópia do arquivo
/usr/local/printers/logs/varzea/atual/(username)/quota.
Então se você quiser mexer REALMENTE na quota de alguém você deve
mexer no arquivo
/usr/local/printers/logs/varzea/atual/(username)/quota,
copiar a atualização:
/usr/local/quotap/usuarios/atual/(alguém)
Bom agora que demos uma olhadinha na estrutura de diretórios vou
começar a explicar o que os scripts (as, filtro, e ae) fazem.
Livio Baldini Soares
2001-02-05