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. |