Discussion:
[shell-script] monitoramento de memo'ria
Jorge Barros de Abreu ficmatin10@gmail.com [shell-script]
2018-11-23 09:18:16 UTC
Permalink
Olá.

Escrevi o script abaixo para monitorar a memória de meu micro
durante uma certa tarefa específica.

Qualquer sugestão ou aperfeiçoamento ou
algum comando mais prático para enxugar a
saída do script ou para dispensar o sed abaixo
eu agradeço.

#!/bin/bash
INTERVALO=1
ARQUIVO="log.txt"
TMP=`mktemp`
rm $ARQUIVO
echo "Pressione uma tecla para encerrar o monitoramento."
TECLA=""
while true ; do
read -s -n 1 -t $INTERVALO TECLA
if [ "$TECLA" != "" ]; then
echo "Tecla pressionada. Saindo do loop."
break
fi
echo "*****************" >> $ARQUIVO
vmstat &>> $ARQUIVO
echo "*****************" >> $ARQUIVO
top -n 1 &>> $ARQUIVO
echo "*****************" >> $ARQUIVO
ps aux 2>&1 | column >> $ARQUIVO
done
echo "Monitoramento conclui'do."
cat $ARQUIVO | tr -d '([?>;^' | sed 's/[\x01-\x1F\x7F]//g
s/Bm3949mK1l251H//g
s/12l25hK//g
s/Bm3949m1m//g
s/Bm3949mK//g
s/Bm//g
s/3949m//g
s/1h=25lH2J//g
s/K$//g
s/^7m//g
s/\:0H]//g
s/\:0]//g
s/\:1]//g
s/\:2]//g
s/\:0^//g
s/]$//g' > $TMP
mv $TMP $ARQUIVO
--
Data Estelar 2458445,924549
http://sites.google.com/site/ficmatinf
Desejo-lhe Paz, Vida Longa e Prosperidade.
São Bem Vindas Mensagens no Formato texto UTF-8 com Acentos.
itamarnet@yahoo.com.br [shell-script]
2018-11-23 16:38:51 UTC
Permalink
Caríssimo Jorge

Fica complicado ajudar sem ter uma idéia do que vc quer de resultado final, e mesmo colocando os comandos que geram não tenho certeza da saída que cada um gera em seu contexto.. Acho que facilitaria muito exibir um exemplo de como esses comandos se mostram para você.
Uma das coisas que não entendi: porque colocar o vmstat e top em segundo plano?
Usar o cat dessa forma é desnecessário, sendo que o arquivo poderia ser tratado direto pelo sed, o que vale também para o tr, cuja tarefa também pode ser feita pelo sed.
E usando o argumento -i no sed nem precisaria do arquivo temporário



Por exemplo: o tr -d '([?>;^' poderia ser no sed 's/[([?>;^]//g'


Poderia ficar assim:
sed -i -r 's/[([?>;^]//g
s/[\x01-\x1F\x7F]//g
s/Bm3949m(K1l251H|K|1m)//g
s/(B|3949)m//g

s/12l25hK|1h=25lH2J//g
s/[]K]$//g

s/^7m//g
s/\:0(H]|0^|0])//g
s/\:[12]]//g' $ARQUIVO



Na verdade é só um resumo do sed.


[]'s
Itamar
itamarnet@yahoo.com.br [shell-script]
2018-11-23 16:56:26 UTC
Permalink
Caríssimo Jorge

Fica complicado ajudar sem ter uma idéia do que vc quer de resultado final, e mesmo colocando os comandos que geram não tenho certeza da saída que cada um gera em seu contexto.. Acho que facilitaria muito exibir um exemplo de como esses comandos se mostram para você.
Uma das coisas que não entendi: porque colocar o vmstat e top em segundo plano?
Usar o cat dessa forma é desnecessário, sendo que o arquivo poderia ser tratado direto pelo sed, o que vale também para o tr, cuja tarefa também pode ser feita pelo sed.
E usando o argumento -i no sed nem precisaria do arquivo temporário



Por exemplo: o tr -d '([?>;^' poderia ser no sed 's/[([?>;^]//g'


Poderia ficar assim:
sed -i -r 's/[([?>;^]//g
s/[\x01-\x1F\x7F]//g
s/Bm3949m(K1l251H|K|1m)//g
s/(B|3949)m//g

s/12l25hK|1h=25lH2J//g
s/[]K]$//g

s/^7m//g
s/\:0(H]|^|])//g
s/\:[12]]//g' $ARQUIVO



Na verdade é só um resumo do sed.


[]'s
Itamar

Loading...