1 |
2008/10/24 Fabiano - deStilaDo <fabianoengler@×××××.com>: |
2 |
> Para arquivos temporários, por exemplo quando for apenas pra jogar uma |
3 |
> saída para ser processada por algum comando e depois o arquivo |
4 |
> apagado, eu gosto de usar o comando tempfile. (man tempfile). |
5 |
> |
6 |
> No teu caso não tem muita necessidade, mas se acontecesse por exemplo |
7 |
> de o seu script rodar mais de uma vez em paralelo, vc pode ter |
8 |
> problemas. Em scripts com comandos que podem demorar (rsync por |
9 |
> exemplo) o risco aumenta bastante, aí o tempfile vem a calhar. |
10 |
> |
11 |
> Um exemplo muito comum de uso dele: |
12 |
> |
13 |
> arqlog=$( tempfile 2>/dev/null ) || arqlog=/tmp/test$$ |
14 |
> trap "rm -f $tempfile" 0 1 2 5 15 |
15 |
> |
16 |
> Nesse caso, ainda temos o comando trap que garante que o arquivo vai |
17 |
> ser apagado, mesmo que vc pressione um ctrl+c no script. Ao trabalhar |
18 |
> com dados um pouco mais sensíveis, isso é importante. |
19 |
> |
20 |
> Outra dica, que parece não ser muito útil nesse seu script mas acho |
21 |
> pertinente comentar pois poucas pessoas conhecem, é verificar a saida |
22 |
> de erro de comandos de um pipe. O problema do pipe é que o erro |
23 |
> retornado (ou exit status) é o do último comando. |
24 |
> |
25 |
> Em muitos scripts meu, o último comando do pipe é um tee para salvar a |
26 |
> saída, e se algum programa importante do pipe falha, eu faço o |
27 |
> seguinte para testar: |
28 |
> |
29 |
> rsync /mnt/winsrv/ $bkdir 2>&1 1>/dev/null | tee $saida_rsync |
30 |
> e=${PIPESTATUS[0]} |
31 |
> log Return code from rsync: $e |
32 |
> if [[ $e != 0 ]] |
33 |
> then |
34 |
> log rsync failed |
35 |
> echo "Erro: $e (valor de retorno do rsync) |
36 |
> Rsync do script de backup em $servidor falhou. |
37 |
> O valor de retorno do rsync foi: $e |
38 |
> Saída do rsync: |
39 |
> " | tee $temp_file |
40 |
> cat $temp_file $saida_rsync | mail -s "Falha no backup do |
41 |
> Servidor $servidor" fabianoengler@×××××.com |
42 |
> fi |
43 |
> |
44 |
|
45 |
E é por isso que eu adoro essa lista. |
46 |
Valeu cara, ótimas dicas! Estou trabalhando em um script de rsync para |
47 |
o cron, para backup de uma partição, e isso vai ajudar. |
48 |
|
49 |
-- |
50 |
Daniel da Veiga |