[FUG-BR] Ajuda com Shell Script para backup das mailbox

Ricardo A. Reis ricardo_bsd em yahoo.com.br
Qua Fev 15 12:23:19 BRST 2006


Isso é meio off mas,

Eu faria algumas modificações,

1. problema

    Caso o servidor tiver muitos arquivos pequenos o que acontece com 
mailservers,
o uso do ls vai demorar alguns minutos e consumir alguns megas de 
memoria, tudo isso
acontece devido ao ls tentar colocar td de forma ordenada.
    Pelos meus servidores 300.000 arquivos consomem +/- 200MB
    Pra evitar isso tente usar -f no ls

2. O uso do awk para imprimir a coluna $9 é problematico, pq ele não vai 
imprimir de forma
correta se o nome do arquivo tiver espaço, isso não acontece com 
frequencia em mailservers

3. O uso do for é discutivel porque caso o problema do awk seja 
resolvido o for vai tratar " "
e dessa forma o arquivo não vai ser movido, eu modificaria isso pra 
usar  while.
    Algo como  comando |while read arquivo;do mv $arquivo /tmp;done
  

   No final de td isso eu acho que usaria algo como,

   Entraria no diretorio que contem os emails e:

find . -type f -ls | awk '$8 ~ /Jan/ { gsub(/^.*\.\//,"") ; print "mv 
\""$0"\" /tmp" }'

saida é

mv "1140012634.V49I21e6.monitor.epm.br" /tmp

   O comando acima so motrara na tela, pra fazer vc pode salvar em um 
arquivo em usar
vc pode  'sh arquivo' ou fazer o awk fazer pipe para o shell.

find . -type f -ls | awk '$8 ~ /Feb/ { gsub(/^.*\.\//,"") ; print "mv 
\""$0"\" /tmp"|"sh" }'

   Teste primeiro e se estiver certo pode rodar :-)



  
Curiosidade, dentro do diretorio dos emails tenta fazer isso cat . 
|strings é muito mais rapido que qualquer ls ou find


Atenciosamente

Ricardo A. Reis
UNIFESP
Unix and Network Admin

> faz um for com essa saida e move 1 por 1
>
> for f in `ls -la | grep \ Jan\  | awk '{ print $9 } '`; do
>   mv $f /outro_lugar
> done
>
> --
> Renato Botelho
> _______________________________________________
> freebsd mailing list
> freebsd em fug.com.br
> http://lists.fug.com.br/listinfo.cgi/freebsd-fug.com.br
>
>   

_______________________________________________
freebsd mailing list
freebsd em fug.com.br
http://lists.fug.com.br/listinfo.cgi/freebsd-fug.com.br



Mais detalhes sobre a lista de discussão freebsd