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

Tiago Cruz tiagocruz em forumgdh.net
Qua Fev 15 12:45:51 BRST 2006


Olá Ricardo,

On Wed, 2006-02-15 at 12:23 -0200, Ricardo A. Reis wrote:
> Isso é meio off mas,
> 
> Eu faria algumas modificações,

Eu não acho isso off, de forma alguma...

> 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

Realmente, este problema existe... mas aqui não é tão grande assim :-)


> 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

Caraca... realmente, ele ignora os caracteres depois do espaço, embora
eu tenha a impressão que o Courier-IMAP não guarda arquivos com espaço,
é melhor evitar isso...


> 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

Não entendi. O for não trabalha com aspas, é isso?
  

> O comando acima so mostrará 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" }'

Bom rapaz... o scripitão já estava funcionando e eu iria enviar de volta
para vocês agora, mas depois desse trem todo ae... hehehehe... acho que
terei que refazer algumas partes...

Aparentemente isso funciona direitinho e talz... mas... sabe como é...

sub(r, t, s)
	substitutes t for the first occurrence of the regular expression
	r in the string s.  If s is not given, $0 is used.

gsub    same as sub except that all occurrences of the  regular  expres-
	sion  are  replaced;  sub and gsub return the number of replace-
	ments.

Cuméquié ae? Quem é r, quem é t e quem é s em (/^.*\.\//,"") 8-P

E... se você tiver tempo para explicar um pobre programador de VB
falido, pra que tanto \""$0"\" no final? Eu tentei tirar umas aspas,
umas barras para ver o que acontece mas não entendi direito... hehehe


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

Aqui não chega a fazer diferença, mas obrigado por avisar :)

Brigadão!
Vou mandar o script em outro email

-- 
Tiago Cruz
http://linuxrapido.org


_______________________________________________
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