[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Uso de memoria.
From: |
Fernando Lemes da Silva |
Subject: |
Uso de memoria. |
Date: |
Fri, 19 Dec 2003 14:10:51 -0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.0.2) Gecko/20030208 Netscape/7.02 |
Olá a todos,
Gostaria de saber como se comporta um shell script quando ao uso de
memoria. Tenho um script rodando que nao deveria consumir memoria, mas
percebo pelo comando free que o uso de memoria vai aumentando enquanto
este script esta sendo executado.
Basicamente é um script para ler a quantidade de bytes transferidos
em uma determinada interface e gravar no log esses dados.
Se alguem puder dar uma luz eu agradeço.
[]'s
Fernando Lemes
#!/bin/bash
# Funcao para limpar o arquivo removendo dados mais velhos que 24 horas.
function clean_log_file {
limit=$[`date +%s` - 86400]
if [ -e /var/log/webtools/mod700d.log.tmp ]; then rm -f
/var/log/webtools/mod700d.log.tmp; fi
while read linha; do
if [ `echo $linha | cut -d " " -f 1` -gt $limit ]; then echo $linha
>> /var/log/webtools/mod700d.log.tmp; fi
done < /var/log/webtools/mod700d.log
rm -f /var/log/webtools/mod700d.log
mv /var/log/webtools/mod700d.log.tmp /var/log/webtools/mod700d.log
}
# Se o diretorio de armazenamento do log nao existir ele eh criado.
if [ ! -d "/var/log/webtools/" ]; then mkdir -p /var/log/webtools/; fi
interfaces=`/sbin/ifconfig | grep Link | cut -d " " -f 1 | grep lo -v`
if [ ! -e "/var/log/webtools/mod700d.log" ]; then
data=`date +%s`
for interface in $interfaces; dx
echo o "$data $interface $newrx $newtx $difrx $diftx" >>
/var/log/webtools/mod700d.log; fi
done
sleep 1
done
clean_log_file
done
~
$data $interface `/sbin/ifconfig $interface | grep bytes | tr -s " " |
cut -d " " -f 3 | cut -d ":" -f 2` `/sbin/ifconfi
g $interface | grep bytes | tr -s " " | cut -d " " -f 7 | cut -d ":" -f
2` 0 0" >> /var/log/webtools/mod700d.log
done
#else clean_log_file; fi
fi
while [ true ]; do
todayis=`date +%u`
while [ $todayis -eq `date +%u` ]; do
for interface in $interfaces; do
data=`date +%s`
oldrx=`cat /var/log/webtools/mod700d.log | grep $interface | tail
-n 1 | cut -d " " -f 3`
oldtx=`cat /var/log/webtools/mod700d.log | grep $interface | tail
-n 1 | cut -d " " -f 4`
newrx=`/sbin/ifconfig $interface | grep bytes | tr -s " " | cut
-d " " -f 3 | cut -d ":" -f 2`
newtx=`/sbin/ifconfig $interface | grep bytes | tr -s " " | cut
-d " " -f 7 | cut -d ":" -f 2`
difrx=$[$newrx - $oldrx]
if [ $difrx -lt 0 ]; then difrx=1; fi
diftx=$[$newtx - $oldtx]
if [ $diftx -lt 0 ]; then diftx=1; fi
if [ $[$difrx + $diftx] -gt 0 ]; then echo "$data $interface
$newrx $newtx $difrx $diftx" >> /var/log/webtools/mod
700d.log; fi
done
sleep 1
done
clean_log_file
done
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Uso de memoria.,
Fernando Lemes da Silva <=