você está aqui: Home  → Arquivo de Mensagens

Ebook Gratuito: Dá para fazer em Shell?, com o Prof. Julio Neves

mail_check

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 09 de Abril de 1997

Outro dos problemas que administradores de sistemas encontram com bastante freqüência é o gerenciamento do espaço em disco. O filesystem /var, por exemplo, é vital para o funcionamento normal do sistema.

Se este filesystem atingir uma taxa de uso de 100% vários serviços são interrompidos, como por exemplo a coleta de dados para contabilização de uso de recursos do sistema e o mais importante de todos, o correio eletrônico.

Quando o /var atinge 100% nenhuma mensagem pode ser enviada ou recebida visto que mensagens que chegam são gravadas em /var/spool/mail e mensagens que saem vão para a fila em /var/spool/mqueue (a localização exata varia de sistema para sistema, mas normalmente são estas).

Várias medidas podem ser tomadas para evitar tamanho transtorno. O script que se segue pode ajudar nesta tarefa transferindo arquivos do diretório /var/spool/mqueue para o diretório home do usuário. O usuário recebe também uma notificação informando-o da transferência dos arquivos e os procedimentos que devem ser seguidos para recuperar suas mensagens.

—----------------------------<mail_check>-----------------------------------
#!/bin/csh

# Definição de Variáveis 

set DATA =  ""date +%d%m%y""
set DIR = /usr/sys
set dir_home = '$''home'

  
# O laço abaixo irá primeiramente gerar uma listagem dos arquivos
# contidos em /var/spool/mail e selecionar aqueles que sejam maiores
# que 400K, ou seja, os usuários afetados serão apenas aqueles que
# não lêem suas mensagens com frequencia. Os arquivos que forem maiores
# que este valor serão movidos para o diretório home do usuário e receberão
# o nome mbox.ddmmyy, onde os valores do dia, mes e ano serão determinados
# a partir do comando "date +%d%m%y". O arquivo em /var/spool/mail é então
# deletado e sua cópia, agora no diretório do usuário, é compactada.
# O último passo é a mudança de ownership do arquivo para o usuário (visto
# que o arquivo foi criado originalmente pelo usuário root.
# 
# Todos os comandos contidos neste laço serão executados para todos os
# usuários cujas mailboxes excedam a 400Kbytes.

foreach USER (""/bin/ls -l /var/mail | awk '$5 > 400000 {print $9}'"")

   mv /var/mail/$USER ~$USER/mbox.$DATA=
   rm ~$USER/mbox.$DATA.gz >&! /dev/null=
   /usr/local/bin/gzip ~$USER/mbox.$DATA=
   chown $USER  ~$USER/mbox.$DATA.gz=

# A seguir é composta a mensagem que será enviada para o usuário.
# O comando cat abaixo irá criar um arquivo em $DIR/mensagem.mail
# que conterá todos os caracteres digitados até que seja encontrado
# os caracteres EOF, que em nosso caso atuam como delimitadores.
# Vale a pena prestar atenção nessa facilidade, visto que é bastante
# útil.

cat >! $DIR/mensagem.mail << EOF

Prezado(a) Usuario(a),

Visto que sua mailbox (/var/spool/mail/$USER) está excedendo o tamanho
máximo permitido de 400K, ela foi transferida para o seu diretório home
com o nome mbox.$DATA.gz.

Isto se fez necessário visto que o filesystem /var estava com uma
taxa de ocupação próxima a 100%, impedindo que nossos usuários
enviassem ou recebessem mensagens.

Favor seguir os seguintes passos para conseguir ler os seus mails
novamente :

1) cd   (para ir para o seu diretorio principal)

2) /usr/local/bin/gzip -d  mbox.$DATA.gz  (para descompactar as mensagens)

3) cat mbox.$DATA >> /var/mail/$USER

Gostariamos de lembra-lo que seus mails devem ser lidos e movidos
para o seu espaco de armazenamento pessoal e nunca deixados na 
caixa de correio localizada no diretório /var.

A maioria dos programas utilizados para leitura de mail (elm, pine,
netscape, etc.) oferece facilidades para se criar folders, onde suas
mensagens podem ser guardadas separadas por assuntos em outro local 
que não o diretório /var/spool/mail/$USER.

Em caso de dúvidas envie mensagem para o endereco suporte@netway.com.br.

EOF

mail -s "Modificações em sua mailbox..." $USER  < $DIR/mensagem.mail

end

—--------------------------<end mail_check>----------------------------


Veja a relação completa dos artigos de Rubens Queiroz de Almeida