Gentoo Archives: gentoo-user-br

From: Fabiano - deStilaDo <fabianoengler@×××××.com>
To: gentoo-user-br@l.g.o
Subject: Re: [gentoo-user-br] análise de máquina
Date: Fri, 24 Oct 2008 01:58:44
Message-Id: e4beb90c0810231858u537e78b8x150fe951d082fc10@mail.gmail.com
In Reply to: Re: [gentoo-user-br] análise de máquina by Fernando Boaglio
1 Para arquivos temporários, por exemplo quando for apenas pra jogar uma
2 saída para ser processada por algum comando e depois o arquivo
3 apagado, eu gosto de usar o comando tempfile. (man tempfile).
4
5 No teu caso não tem muita necessidade, mas se acontecesse por exemplo
6 de o seu script rodar mais de uma vez em paralelo, vc pode ter
7 problemas. Em scripts com comandos que podem demorar (rsync por
8 exemplo) o risco aumenta bastante, aí o tempfile vem a calhar.
9
10 Um exemplo muito comum de uso dele:
11
12 arqlog=$( tempfile 2>/dev/null ) || arqlog=/tmp/test$$
13 trap "rm -f $tempfile" 0 1 2 5 15
14
15 Nesse caso, ainda temos o comando trap que garante que o arquivo vai
16 ser apagado, mesmo que vc pressione um ctrl+c no script. Ao trabalhar
17 com dados um pouco mais sensíveis, isso é importante.
18
19 Outra dica, que parece não ser muito útil nesse seu script mas acho
20 pertinente comentar pois poucas pessoas conhecem, é verificar a saida
21 de erro de comandos de um pipe. O problema do pipe é que o erro
22 retornado (ou exit status) é o do último comando.
23
24 Em muitos scripts meu, o último comando do pipe é um tee para salvar a
25 saída, e se algum programa importante do pipe falha, eu faço o
26 seguinte para testar:
27
28 rsync /mnt/winsrv/ $bkdir 2>&1 1>/dev/null | tee $saida_rsync
29 e=${PIPESTATUS[0]}
30 log Return code from rsync: $e
31 if [[ $e != 0 ]]
32 then
33 log rsync failed
34 echo "Erro: $e (valor de retorno do rsync)
35 Rsync do script de backup em $servidor falhou.
36 O valor de retorno do rsync foi: $e
37 Saída do rsync:
38 " | tee $temp_file
39 cat $temp_file $saida_rsync | mail -s "Falha no backup do
40 Servidor $servidor" fabianoengler@×××××.com
41 fi
42
43
44 On Thu, Oct 23, 2008 at 9:03 AM, Fernando Boaglio <boaglio@×××××.com> wrote:
45 > O super ultra mega report script ficou assim , aceito sugestões =)
46 >
47 >
48 > #/bin/sh
49 > #
50 > data=`date +%d-%m-%y`
51 > ARQUIVO=/tmp/relatorio.txt
52 > LINHA="___________________________________________________________________________________________________________________________________________________"
53 >
54 > echo $LINHA > $ARQUIVO
55 > echo RELATORIO DE $data >> $ARQUIVO
56 > echo $LINHA >> $ARQUIVO
57 >
58 > echo $LINHA >> $ARQUIVO
59 > df -Th >> $ARQUIVO
60 > echo $LINHA >> $ARQUIVO
61 >
62 > echo $LINHA >> $ARQUIVO
63 > free >> $ARQUIVO
64 > echo $LINHA >> $ARQUIVO
65 >
66 > echo $LINHA >> $ARQUIVO
67 > vmstat 1 10 >> $ARQUIVO
68 > echo $LINHA >> $ARQUIVO
69 >
70 > echo $LINHA >> $ARQUIVO
71 > echo PROCESSOS JAVA >> $ARQUIVO
72 > echo $LINHA >> $ARQUIVO
73 > ps -axjf | grep -i java >> $ARQUIVO
74 > echo $LINHA >> $ARQUIVO
75 >
76 > echo $LINHA >> $ARQUIVO
77 > echo PROCESSOS DB2 >> $ARQUIVO
78 > echo $LINHA >> $ARQUIVO
79 > ps -axjf | grep -i db >> $ARQUIVO
80 > echo $LINHA >> $ARQUIVO
81 >
82 > echo $LINHA >> $ARQUIVO
83 >
84 > mail boaglio@×××××.com -s "relatorio do servidor [$HOSTNAME] - $data" <
85 > $ARQUIVO
86 >
87 > rm $ARQUIVO
88 >
89 >
90 > []'s
91 > Fernando Boaglio
92 >
93
94
95
96 --
97 Fabiano.

Replies

Subject Author
Re: [gentoo-user-br] análise de máquina Daniel da Veiga <danieldaveiga@×××××.com>