[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